LinqToSQL – 用大量表格映射DataContext?

我一直在做一个项目,我一直在使用涉及很多表的LinqToSQL 。 所有这些都映射在一个.dbml文件中(即只有一个DataContext )。 我这样做的假装是(目前)你不能加入多个数据上下文。 例如…

 DB1DataContext db1 = new DB1DataContext(); DB2DataContext db2 = new DB2DataContext(); var query = from x in db1.SomeTable join y in db2.AnotherTable on x.Id equals y.Id select new { x.Column, y.Column }; 

有人认为事实并非如此,我应该将.dbml文件分解为单独的较小(即更易管理)的数据上下文。 我现在只是设置一个示例,对上面的一个运行类似的查询并得到以下错误…

base {System.SystemException} = {“查询包含对在不同数据上下文中定义的项的引用。”}

我好奇,我错过了什么? 有很多表需要映射的常见做法是什么? 你怎么能打破.dbml文件?

这里有好几次被问过,没有明确的答案。 检查这个问题:

  • LINQ to SQL:每个项目多个/单个.dbml?
  • 多个DataContext类是否合适?
  • Linq to SQL和大型DB模型
  • 管理LINQ to SQL .dbml模型的复杂性
  • 管理Linq to SQL Dbml文件的最佳实践?

一些答案参考了这篇博客文章: LINQ to SQL DataContext的生命周期