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