如标题所示,我的问题是我有一个从 View 中选择数据的查询/存储过程,它在管理工作室中工作得很好,问题是当我尝试从我的应用程序调用此数据时(使用linq to entites) 我得到了错误的数据(错误是因为当查询应该返回 5 个不同的行/记录时,单行重复了 10 次) 这是我的管理工作室查询:
select * from dbo.v_RouteCardDetails_SizeInfo
where Trans_TransactionHeader = 0
AND Direction = 0
AND RoutGroupID = 1
AND Degree = '1st'
返回结果:
Size SizeQuantity Trans_TransactionHeader RoutGroupID Direction Degree
XS 10 0 1 0 1st
S 2 0 1 0 1st
M 0 0 1 0 1st
L 5 0 1 0 1st
XXL 2 0 1 0 1st
这是我的 Linq 查询:
(from x in context.v_RouteCardDetails_SizeInfo
where x.Trans_TransactionHeader == 0
&& x.Direction == 0
&& x.RoutGroupID == 1
&& x.Degree.ToLower() == "1st"
select x).ToList<_Model.v_RouteCardDetails_SizeInfo>();
返回的结果是:
Size SizeQuantity Trans_TransactionHeader RoutGroupID Direction Degree
XS 10 0 1 0 1st
XS 10 0 1 0 1st
XS 10 0 1 0 1st
XS 10 0 1 0 1st
XS 10 0 1 0 1st
XS 10 0 1 0 1st
XS 10 0 1 0 1st
XS 10 0 1 0 1st
XS 10 0 1 0 1st
XS 10 0 1 0 1st
2 天来我一直在努力解决这个问题,感谢您的帮助 谢谢
最佳答案
毫无疑问,Entity Framework 猜测为 View 主键的字段在 View 中不是唯一的。尝试在 edmx 设计器(或代码优先映射)中向 PK 添加字段,直到您真正获得独特的组合。
EF 只是为它在 SQL 查询的结果集中找到的每个相同的键值具体化相同的行。
关于c# - Linq To 实体查询返回错误数据(不同于 Management Studio 查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17188442/