我的上下文中有两个类,它们如下;
public class Supplier
{
public int ID { get; set; }
public virtual ICollection<SupplierOffice> SupplierOffices { get; set; }
}
public class SupplierOffice
{
public int ID { get; set; }
public int SupplierID { get; set; }
public virtual Supplier Supplier { get; set; }
}
关系是,供应商拥有零个或多个供应商办事处
这个背景大部分都是预期的;当我想通过ID获得供应商时,它会返回填充了所有办公室的供应商
但是,当我在调试器中检查此代码时,可能存在的问题是什么;
所以我可以告诉系统,供应商和供应商办公室在循环中无休止地加载。 我不认为这会导致任何性能问题,所以我想知道这是否只是调试器的一个怪癖,实际的系统不会这样做。如果这是无休止地循环,我该如何纠正这个?
非常感谢
答案 0 :(得分:1)
当您在调试器中导航时,在您编码时使用导航属性就没有别的了:
curSupplier.SupplierOffices
然后,例如
curSupplier.SupplierOffices[0].Supplier
然后
curSupplier.SupplierOffices[0].Supplier.SupplierOffices
然后
curSupplier.SupplierOffices[0].Supplier.SupplierOffices[1].Supplier
这里没有递归,也没有无限循环。您只是使用导航属性,是的,您可以使用它们无穷无尽... 由于导航属性在两个方向上,您可以这样做,并且没有问题。
正如Adriano Repetti在评论中所写,您始终在检查/访问同一个供应商实例。