我在数据库中定义了一个视图 (archiveContentPreviews),它将多个表连接在一起,并且在 Linq 中它有一个实体键 (ArchiveID),我想使用以下简单查询来查询此视图:
var x = from fields in entities2.archiveContentPreviews
where fields.ArchiveID == archiveID
select fields;
return x.ToList<archiveContentPreview>();
问题是它返回精确数量的结果,但第一个结果的多个副本,当我在 SQL Management Studio 中执行该查询时,它返回正确的结果,有帮助吗?!
当指定为主键的列(或多列)在视图中没有唯一值时,通常会发生这种情况。就你而言,ArchiveID
可能在大量视图行中重复(这也由您的where
条款)。您必须找到(或添加到视图)唯一标识视图行的列组合,并将它们标记为 EF 模型中的主键。
请注意,生成的 SQL 查询返回的数据可能包含具有不同值的行(但相同)ArchiveID
),但 EF 只是具体化每个实体对象ArchiveID
它可以找到该 id 的第一个结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)