Asp.net mvc 实体框架未返回正确的数据。它是从单个记录重复数据

Asp.net mvc 实体框架未返回正确的数据。它是从单个记录重复数据,asp.net-mvc,entity-framework-5,Asp.net Mvc,Entity Framework 5,首先使用带有EF代码的MVC4。 在执行linq to EF selects语句时,集合将填充上一条记录的数据。更奇怪的是,只有一些属性在其他属性不重复的地方重复。最好通过示例向您展示: 使用此查询将返回正确的数据: var orders = db.Orders.ToList(); OrderID OrderTotal名称 1215.00鲍勃 2415.00马克 3315.50拉尔夫 当我通过SubscriberID筛选Orders实体时,它是一个外键,如下所示: var orders = d

首先使用带有EF代码的MVC4。 在执行linq to EF selects语句时,集合将填充上一条记录的数据。更奇怪的是,只有一些属性在其他属性不重复的地方重复。最好通过示例向您展示:

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

var orders = db.Orders.ToList();
OrderID OrderTotal名称

1215.00鲍勃

2415.00马克

3315.50拉尔夫

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

var orders = db.Orders.Where(s => s.SubscriberId == 2).ToList();
数据最终如下所示:

1315.50鲍勃

2315.50马克

3315.50拉尔夫


注意OrderTotal是如何重复的,但名称保持不变。请注意,这不是视图问题。当我在控制器中调试时查看集合中的数据时,这就是我看到的。这似乎不是唯一发生这种情况的地方。我在更复杂的模型上看到了类似的东西——但我想我应该从最简单的示例开始。谢谢

问题是在我设置模型的默认值时引起的。显然,使用static是不正确的。因此:

[只读(正确)] [显示(名称=“小计”)] 私有静态十进制_OrderSubTotal=0; 公共十进制OrderSubTotal{get{return}OrderSubTotal;}set{{OrderSubTotal=value;}} 应写为

[只读(正确)] [显示(名称=“小计”)] 私有十进制_OrderSubTotal=0;
public decimal OrderSubTotal{get{return}OrderSubTotal;}set{{OrderSubTotal=value;}}}为什么不附加查询分析器并查看实际的SQL?