使用Entityframework从数据库中检索值

时间:2016-10-21 13:59:05

标签: c# entity-framework linq entity-framework-4

enter image description here enter image description here我想检索满足条件的所有行。但是当我尝试时,只有行计数在调试时正确显示,并且第一行值重复获取。以下是我的代码

var data = (from jlist in entity.JobDetails
            where jlist.JobID == QJobID
            select jlist).ToList();

只有第一行值显示在var数据中。我有多个项目要显示

1 个答案:

答案 0 :(得分:2)

重复相同的对象几乎总是主键不准确的说明:EF知道的PK不能唯一地标识数据库中的实际记录。当视图映射到EF模型时经常会发生这种情况,因为视图只是一个存储的查询,可能甚至不会打扰唯一标识。

在您的情况下,您将单个主键更改为复合键,而不知道EF,或者您只告诉EF JobID是主键。

当EF实体化实体对象时,它为其创建一个EntityKey,其中包含对实体的引用。这些EntityKey 具有唯一的,否则更改跟踪器会崩溃。因此,如果有两个实体(由{ 1, 1 }{ 1, 2 }标识,而EF仅查看1,则EF将使用现有实体密钥用于第二个实体。我认为,奇怪的部分是EF仍然决定实现与该实体密钥匹配的第二个实例。如果不是,你只能看到一条JobDetails记录,这可能会更好地将你的怀疑指向正确的位置。