我正在使用ASP.NET WebAPI并遇到了应该通过WebAPI控制器进行通信的嵌套模型的问题:
实体“债券,股票等”每个都有一个实体列表“价格”。在服务器端,我使用以下类来匹配此要求..
public class Bond : BaseAsset
{
public int ID { get; set; }
public string Name { get; set; }
public virtual List<Price> Prices { get; set; }
}
这导致表格“价格”有一个债券,股票等列,如果债券附有价格,其债券外键列中的一个条目。
我最初得到的错误是
已经有一个与此命令关联的开放DataReader
我修改了连接字符串以允许MultipleActiveResultSets。
但是,我觉得在处理嵌套模型时必须有更好的选择或至少是替代方案。例如,当遇到这样的问题时,它是否是模型设计不良的标志?急切的加载会改变什么吗?
答案 0 :(得分:2)
火星的另一种替代方法是禁用延迟加载
在你的DbContext
中Configuration.LazyLoadingEnabled = false;
加上加载数据时,可以显式加载子表
context.Bonds.Include(b => b.Prices)