我试图在另一个模型属性中使用延迟加载的iccollection,就像这样…(注意:我只包括了与这个问题相关的类属性,因为类有超过50个属性,并削减了TotalCost
属性,只包括导致错误的行。)
public class PartModel {
public double TotalCost
{
get
{
var costs = 0D;
costs += AddedCosts != null && AddedCosts.Any() ? AddedCosts.Sum(x => x.AddedCost) : 0;
return double.IsInfinity(costs) ? 0 : costs;
}
}
public virtual ICollection<AddedCostModel> AddedCosts { get; set; }
}
当我在视图中调用AddedCosts
时,它会像预期的那样惰性加载,但是当TotalCost
被调用时,在AddedCosts
之后立即抛出异常Error: The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.
我需要在这里改变什么来允许这个工作?我应该急切地加载这个,而不是懒惰?
web应用中的延迟加载是低效的,是一个糟糕的设计。别用它。