我在我的数据库中创建了一个特定的视图(使用左连接加入约5-6个表).这个视图被添加到我的edmx(实体框架1.0).最近我注意到使用edmx(linq到实体然后ToList())获得的一个列记录多次重复,但在数据库视图中它们是不同的
Column-N (Expected result/ result from DB view)
---------
data1
data2
data3
data4
data5
Column-N(Actual result generated by entity framework)
---------
data1
data1
data1
data1
data1
Run Code Online (Sandbox Code Playgroud)
我启动了我的SQL分析器,得到了我的应用程序发送到SQL Server的查询,运行它并返回给我预期的结果.
MSDN 在这里和这里有类似的帖子,但主持人还没有详细说明如何解决这个问题.我的密钥碰巧是GUID
您指出的根本原因我认为是正确的,问题出在应用程序端EF映射上,因为EF与数据库有不同的对象映射规则.当从数据库返回查询结果时,EF将根据自己设计的逻辑对应用程序内存进行映射.
在数据库端设置视图查询时,将这些逻辑考虑在内是很重要的.我认为你应该对你的视图查询做一些调整.
我不确定您是否对问题进行了排序,如果没有,请提供与此问题相关的数据库结构和您编写的视图查询.
谢谢宾兹
有人之前遇到过类似的问题吗?