Linq to sql LINQ到SQL-关闭ObjectTrackinEnabled时关联丢失
我正在使用LINQtoSQL(C#3.5)从我的数据库(SQLServer2000)中读取两个表house和county。House有一个CountyID列,该列与county表中的ID列相匹配。County表有ID和CountyName列。数据库中没有关联-我在dbml文件中添加了它。(父类=县,子类=房屋) 现在,我可以查询House表并获得House.county.CountyName的县名称-这正是我想要的 除非我将EnableObjectTracking设置为false,否则这非常有效。我的性能提高了约3倍,但房屋中的County子对象为空Linq to sql LINQ到SQL-关闭ObjectTrackinEnabled时关联丢失,linq-to-sql,sql-server-2000,Linq To Sql,Sql Server 2000,我正在使用LINQtoSQL(C#3.5)从我的数据库(SQLServer2000)中读取两个表house和county。House有一个CountyID列,该列与county表中的ID列相匹配。County表有ID和CountyName列。数据库中没有关联-我在dbml文件中添加了它。(父类=县,子类=房屋) 现在,我可以查询House表并获得House.county.CountyName的县名称-这正是我想要的 除非我将EnableObjectTracking设置为false,否则这非常有效
有办法解决这个问题吗?当您将EnableObjectTracking设置为false时,正如您所注意到的,您还可以关闭延迟加载子实体。MSDN说 延迟加载需要对象 追踪。只有以下三个 模式有效: ObjectTrackingEnabled=false。 DelferredLoadingEnabled被忽略,并且 推断为错误的。这种行为 对应于只读 数据上下文 ObjectTrackingEnabled=true。 DelferredLoadingEnabled=false。这 情境对应于数据上下文 它允许用户加载对象 通过使用LoadWith指令绘制图形, 但它不能启用延迟 装载 两者都设置为true。这是 默认 如果要禁用对象跟踪,可以使用
LoadWith
方法填充子实体。请参阅MSDN以了解有关