gpt4 book ai didi

linq-to-sql - 数据库 View 的 Entity Framework 结果差异

转载 作者:行者123 更新时间:2023-12-03 14:52:47 26 4
gpt4 key购买 nike

我在我的数据库中创建了一个特定 View (使用左连接连接大约 5-6 个表)。此 View 已添加到我的 edmx (entity framework 1.0) 。最近我注意到使用 edmx(linq to entity 然后是 ToList())获得的列记录之一被多次复制,尽管在数据库 View 中它们是不同的

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

我启动了我的 SQL 分析器,得到了由我的应用程序发送到 SQL Server 的查询,运行它并返回了预期的结果。

MSDN 也有类似的帖子 herehere但是版主并没有详细说明如何解决这个问题。我的 key 恰好是一个 GUID

The root cause you pointed out I think is correct, the problem is on the application side EF mapping, as EF has different object mapping rules with database. when the query results have been returned from database, the EF will do the mapping on application memory according to its own designed logic.

It's important to take these logic into account when you desingn your view query in your database side. I think you should do some adjustment on your view query.

I am not sure whether you have sorted the problem, if not please provide the database structure related to this issue and the view query you have written.

Thanks Binze



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

最佳答案

问题实际上出在 key 上。您必须 a) View 中的每一行都有一个唯一标识符。 b) 在 edmx 中相应地映射该键。否则,正如您的引用所述,映射逻辑将看到每个后续行并指出它可以使用它之前返回的相同对象实例

关于linq-to-sql - 数据库 View 的 Entity Framework 结果差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3111112/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com