LinqToSQL - mapping out the DataContext with lots

2019-05-21 10:12发布

I've been working on a project where I have been using LinqToSQL that involved a lot of tables. All of these where mapped in one .dbml file (i.e. only one DataContext). I did this on the pretense that (currently) you cant join across multiple data contexts. For example...

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
    };

Someone argued that this isn't so, and I should break the .dbml file down into seperate smaller (i.e more managable) data contexts. I've now just set up an example, run a similar query to the one above and got the following error...

base {System.SystemException} = {"The query contains references to items defined on a different data context."}

I am curious, am I missing something? What are the common practices where there are a lot of tables that require mapping? How can you break down a .dbml file?

登录 后发表回答