我正在使用Linq-to-SQL(C#3.5)从我的数据库(SQL Server 2000)读取两个表,house和county。 House具有与县表中的ID列匹配的CountyID列。 County表有ID和CountyName列。数据库中没有关联 - 我在dbml文件中添加了它。 (父类=县,儿童类=众议院)
现在我可以查询House表并将县名称作为house.County.CountyName - 正是我想要的。
除非我将EnableObjectTracking设置为false,否则这很有用。我获得了大约3倍的性能提升,但House中的County子对象为null。
有解决方法吗?
答案 0 :(得分:1)
当您将EnableObjectTracking设置为false时,您还会关闭延迟加载子实体。 MSDN说......
延迟加载需要对象 跟踪。只有以下三个 模式有效:
ObjectTrackingEnabled = false。 DeferredLoadingEnabled被忽略 推断是假的。这种行为 对应于只读 DataContext的。
ObjectTrackingEnabled = true。 DeferredLoadingEnabled = false。这个 情境对应于DataContext 允许用户加载对象 使用LoadWith指令绘制图形, 但它不会启用延期 负荷。
两者都设置为true。这是 默认值。
如果要保持禁用对象跟踪,可以使用LoadWith
方法填充子实体。有关LoadWith