实体框架未返回正确的数据。它重复来自单个记录的数据

时间:2013-04-04 15:31:49

标签: asp.net-mvc entity-framework-5

首先使用带有EF代码的MVC 4。 当执行linq到EF选择语句时,集合中正在填充看起来像最后一条记录的数据。更奇怪的是,只有一些属性被重复,而其他属性则没有。最好通过示例向您展示:

使用此查询返回正确的数据:

var orders = db.Orders.ToList();

OrderID OrderTotal Name

1 215.00 Bob

2 415.00马克

3 315.50拉尔夫

当我通过SubscriberID过滤Orders实体时,这是一个外键,如下所示:

var orders = db.Orders.Where(s => s.SubscriberId == 2).ToList();

数据最终看起来像这样:

1 315.50 Bob

2 315.50马克

3 315.50拉尔夫

注意OrderTotal是如何重复的,但名称保持不变。请注意,这不是一个观点问题。当我在控制器中调试时查看集合中的数据时,这就是我所看到的。这似乎不是唯一发生这种情况的地方。我看到类似于更复杂模型的东西 - 但我想我会从最简单的样本开始。谢谢!

1 个答案:

答案 0 :(得分:0)

当我在模型上设置默认值时,问题就出现了。显然使用静态不正确。所以:

[只读(真)] [显示(名称=“小计”)] private static decimal _OrderSubTotal = 0; public decimal OrderSubTotal {get {return _OrderSubTotal; } set {_OrderSubTotal = value; }}

应该写成

[只读(真)] [显示(名称=“小计”)] private decimal _OrderSubTotal = 0; public decimal OrderSubTotal {get {return _OrderSubTotal; } set {_OrderSubTotal = value; }}