LINQ to SQL - 当我关闭 ObjectTrackingEnabled 时关联丢失
我正在使用 Linq-to-SQL (C# 3.5) 从我的数据库 (SQL Server 2000) 读取两个表:房屋和县。 House 有一个 CountyID 列,与县表中的 ID 列相匹配。 County 表具有 ID 和 CountyName 列。数据库中没有关联 - 我将其添加到 dbml 文件中。 (父类 = County,子类 = House)
现在我可以查询 House 表并获取县名称 house.County.CountyName - 这正是我想要的。
除非我将 EnableObjectTracking 设置为 false,否则这效果很好。我获得了大约 3 倍的性能提升,但 House 中的 County 子对象为空。
有办法解决这个问题吗?
I am using Linq-to-SQL (C# 3.5) to read two tables, house and county, from my database (SQL Server 2000). House has a CountyID column that matches an ID column in the county table. The County table has ID and CountyName columns.There is no association in the database - I added it in the dbml file. (Parent class = County, Child class = House)
Now I can query the House table and get the county name as house.County.CountyName - just what I want.
This works great unless I set EnableObjectTracking false. I get approx 3X performance improvement but the County child object in House is null.
Is there a way around this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当您将 EnableObjectTracking 设置为 false 时,您还会注意到延迟加载子实体。 MSDN 说...
如果您想保持对象跟踪处于禁用状态,您可以使用
LoadWith
方法来填充子实体。有关 LoadWithWhen you set EnableObjectTracking to false, you also turn off lazy loading child entities as you have noticed. MSDN says...
You can use the
LoadWith
method to populate your child entities if you want to keep Object Tracking Disabled. Please see MSDN for more information on the LoadWith