Используйте Inner Join в методе FromSql Entity Framework Core - PullRequest
0 голосов
/ 13 мая 2018

Можно ли использовать Inner Join в методе FromSql ядра Entity Framework?

Я использовал, но получил эту ошибку:

SqlException: столбец'Id' был указан несколько раз для 'c'.

Это мой код:

return DbContext.Contacts
    .FromSql<Contact>("Select * From Contacts Inner Join Phones on Phones.ContactId = Contacts.Id Where Contacts.Id <= 2 And Phones.PhoneNumber='01234567890'")
    .Include(o => o.RegisteredByUser)
    .AsNoTracking()
    .ToListAsync();

1 Ответ

0 голосов
/ 13 мая 2018

Ваш столбец Id отображается в обеих таблицах, Phones и Contacts.Вместо ввода * лучше выбрать поля, требуемые в запросе, как показано ниже.

Обратите внимание, вам нужно указать, какой идентификатор вы хотите. Если вы хотите оба, в этом случае вы можете использовать псевдонимыкак следующий.

Select Phones.Id as PhoneId, Contacts.Id as ContactsId, ....

Ваш окончательный запрос должен выглядеть следующим образом.

Select Contacts.Id, ... From Contacts Inner Join Phones on Phones.ContactId = Contacts.Id Where Contacts.Id <= 2 And Phones.PhoneNumber='01234567890
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...