Я впервые использовал LINQ to SQL в своем проекте и использовал следующий оператор:
var ProjectRouteEmails = EmailManagerDAL.Context.ProjectRouteEmails
.Where(p => p.ProjectID == ProjectID);
Это правильно вернуло три разных электронных письма из представления ProjectRouteEmails. Идентификаторы, возвращенные из таблицы электронных писем: 117, 591 и 610.
Я перешел на LINQ to Entities и использую то же представление и тот же оператор LINQ, но, хотя я получаю три записи, это первая запись, ID 117, которая возвращается три раза.
Я пытался написать утверждение LINQ так:
var ProjectRouteEmails = from p in EmailManagerDAL.Context.ProjectRouteEmails
where p.ProjectID == ProjectID
select p;
но это не имело значения; одна и та же запись возвращалась три раза.
Я зашел в SQL Server Management Studio и выполнил запрос:
select * from ProjectRouteEmails (nolock)
where ProjectID = 12
и верные три уникальных записи.
Что здесь происходит?
Спасибо!