В Entity Framework результаты отличаются от LINQ to SQL

Я впервые использовал 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

и вернулись три правильные уникальные записи.

Что здесь происходит?

Спасибо!

5
задан user390480 10 May 2011 в 13:15
поделиться