代码之家  ›  专栏  ›  技术社区  ›  b0x0rz

C Linq to SQL连接问题

  •  0
  • b0x0rz  · 技术社区  · 16 年前

    我正在努力

    using (UserManagementDataContext context = new UserManagementDataContext())
                {
                    var users = from u in context.Users
                                where u.UserEMailAdresses.EMailAddress == "email@example.com"
                                select u;
                    return users.Count();
                }
    

    但是,当我到达:

    using (UserManagementDataContext context = new UserManagementDataContext())
                {
                    var users = from u in context.Users
                                where u.UserEMailAdresses.
    

    我没有收到电子邮件地址名,而是在Intelisen中提供一些中立的默认选项列表。

    我做错什么了?

    表用户

    ID  bigint
    NameTitle   nvarchar(64)
    NameFirst   nvarchar(64)
    NameMiddle  nvarchar(64)
    NameLast    nvarchar(64)
    NameSuffix  nvarchar(64)
    Status  bigint
    IsActive    bit
    

    表用户电子邮件地址

    ID  bigint
    UserID  bigint
    EMailAddress    nvarchar(256)
    IsPrimary   bit
    IsActive    bit
    

    显然,一个用户可以有许多地址,因此 Users.ID UserEMailAddresses.UserID 他们之间有一种关系:一对多。

    1 回复  |  直到 16 年前
        1
  •  2
  •   Thomas Levesque    16 年前

    UserEMailAdresses 是一组电子邮件地址,因此打电话没有意义 EMailAddress 关于它。

    您必须检查集合中是否有与您要查找的电子邮件地址匹配的电子邮件地址:

    var users = from u in context.Users
                where u.UserEMailAdresses.Any(e => e.EMailAddress == "email@example.com")
                select u;