实体框架视图在选择时不显示所有行

0 entity-framework views sql-server-2008

我在sql server 2008中有一个常规视图,我使用实体框架从数据库方法生成设计.我已经知道实体框架中视图的密钥问题,但这不是我的解决方案.当我从视图中查询select*时,它会显示3行,这是正确的,但是所有行都是相同的,并且是数据库视图中的第一行.

一些帮助将非常感激.

Lad*_*nka 5

我已经知道实体框架中视图的密钥问题,但这不是我的解决方案.当我从视图中查询select*时,它会显示3行,这是正确的,但是所有行都是相同的,并且是数据库视图中的第一行.

您所描述的正是由错误密钥引起的问题.您的三行必须具有唯一标识 - 某些列或一组列必须唯一标识每个可能的返回记录.必须在设计器中将这些列设置为实体键.

您还可以通过在从视图加载数据时不使用更改跟踪来避免此问题,因为返回的实体是只读的.你必须使用MergeOption.NoTrackingObjectSet:

context.MyViewEntities.MergeOption = MergeOption.NoTracking;
var data = context.MyViewEntities.ToList();
Run Code Online (Sandbox Code Playgroud)