user390480
user390480

Reputation: 1665

Different results in Entity Framework than LINQ to SQL

I was first using LINQ to SQL in my project and used the following statement:

var ProjectRouteEmails = EmailManagerDAL.Context.ProjectRouteEmails
            .Where(p => p.ProjectID == ProjectID);

That correctly returned the three distinct emails from the view ProjectRouteEmails. The IDs returned from the Emails table were 117, 591, and 610.

I changed to LINQ to Entities and use the same view and same LINQ statement, but even though I am getting back three records, it is the first record, ID 117, that is getting returned three times.

I tried writing the LINQ statment like this:

var ProjectRouteEmails = from p in EmailManagerDAL.Context.ProjectRouteEmails
                                 where p.ProjectID == ProjectID
                                 select p;

but it made no difference; the same record returned three times.

I went into SQL Server Management Studio and ran the query:

select * from ProjectRouteEmails (nolock) 
where ProjectID = 12

and the correct three, unique records returned.

What is going on here?

Thanks!

Upvotes: 5

Views: 1172

Answers (1)

Aducci
Aducci

Reputation: 26694

Make sure the entity key is set correctly for ProjectRouteEmails in the Entity Data Model. Sometimes the entity keys are messed up when you import the view into the model.

Upvotes: 5

Related Questions