c # linq to sql проблема присоединения - PullRequest
0 голосов
/ 22 мая 2010

я пытаюсь сделать

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.

Мне не предлагают имя EMailAddress, а скорее какой-то нейтральный список параметров по умолчанию в intelisense.

что я делаю не так?

Таблица пользователей

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

таблица UserEMailAddresses

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

очевидно, у 1 пользователя может быть много адресов, поэтому Users.ID и UserEMailAddresses.UserID имеют отношения между ними: от 1 до МНОГИ.

1 Ответ

2 голосов
/ 22 мая 2010

UserEMailAdresses - это набор адресов электронной почты, поэтому нет смысла называть EMailAddress на нем.

Вы должны проверить, есть ли в коллекции адрес электронной почты, совпадающий с тем, который вы ищете:

var users = from u in context.Users
            where u.UserEMailAdresses.Any(e => e.EMailAddress == "email@example.com")
            select u;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...