2

我一直在从事一个项目,我一直在使用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 文件?

4

1 回答 1

3

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

一些答案参考这篇博文:Lifetime of a LINQ to SQL DataContext

于 2009-07-14T19:04:47.603 回答