LINQ to SQL query has wrong values in results

2019-06-26 07:11发布

问题:

I have a LINQ query that has the incorrect results, but when I profile the SQL generated, the SQL results are correct.

ApplicationsEntities context = new ApplicationsEntities();
var query = from documentation in context.Documnetations
            where documentation.Application_Version_ID == app_ver_id
            orderby documentation.Name
            select documentation;
docs = query.ToList<Documnetation>();

I get back two duplicates : "How to install Office 2003" and "How to install office 2003"

Below is the output of the profiled SQL:

What could be happening to the assignment of the results from the generated SQL?

回答1:

Update based on comments

Your linq query is fine, but in your model you have to set the Primary Key/Entity Key

Linq-to-Sql

In your dbml, you need to change your primary key from Application_Version_ID to Documentation_Id

Linq-to-Entities

In your model, you need to change your entity key from Application_Version_ID to Documentation_Id