相关疑难解决方法(0)

实体框架导致数据库视图的差异

我在我的数据库中创建了一个特定的视图(使用左连接加入约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将根据自己设计的逻辑对应用程序内存进行映射.

在数据库端设置视图查询时,将这些逻辑考虑在内是很重要的.我认为你应该对你的视图查询做一些调整.

我不确定您是否对问题进行了排序,如果没有,请提供与此问题相关的数据库结构和您编写的视图查询.

谢谢宾兹

有人之前遇到过类似的问题吗?

linq-to-entities entity-framework linq-to-sql

16
推荐指数
1
解决办法
3442
查看次数