LINQ没有延迟加载

时间:2011-02-15 19:34:35

标签: c# linq linq-to-sql

是否有一种简单的方法可以强制linq在外键关系上执行连接而无需访问引用表的任意成员?

例如,如果我有一个引用TaxBracket表的Company对象,并且在它们之间建立了关系和linq关联,我希望能够在数据上下文之后访问Company.TaxBracket已被处理,无需var temp = Company.TaxBracket.randomMemberVariableToExecuteQuery

2 个答案:

答案 0 :(得分:4)

您可以使用DataLoadOptions

DataLoadOptions options = new DataLoadOptions();
options.LoadWith<Company>(c => c.TaxBracket);
using(var context = new DBContext(){LoadOptions = options})
{
    //...
}

答案 1 :(得分:3)

使用DataLoadOptions.LoadWith。所以,你会说像

这样的东西
using(var context = new MyDataContext()) {
    DataLoadOptions dataLoadOptions = new DataLoadOptions();
    dataLoadOptions.LoadWith<Company>(c => c.TaxBracket);
    context.LoadOptions = dataLoadOptions;

    // some query
}