Linq:如何直接加载第二个表?

时间:2009-11-05 15:41:52

标签: linq

我这里有两张桌子: 拍卖和文章。

1拍卖有1条。 1 Aricle有x次拍卖。

现在我加载一份拍卖清单:

            using (APlattformDatabaseDataContext dc = new APlattformDatabaseDataContext())
        {
            List<Auktion> auctionlist = (from a in dc.Auktion
                                         where a.KäuferID == null
                                         select a).ToList();
            return auctionlist;
        }

但是当我想要“txtBla.Text = auction [0] .Article.Text;”它没有加载。 问题不是为什么(逻辑上它没有全部加载而且由于DC关闭而无法加载),但是如何在不让DC打开的情况下解决这个问题呢?

2 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

DataLoadOptions options = new DataLoadOptions();
options.LoadWith<Auktion>(a => a.Article);
dc.LoadOptions = options;

答案 1 :(得分:0)

如果你想加载像这样的关联,你应该使用DataContext.LoadOptions属性,如此......

using (APlattformDatabaseDataContext dc = new APlattformDatabaseDataContext())
{
    var dlo = new DataLoadOptions();
    options.LoadWith<Auktion>(o => o.Article);
    dc.LoadOptions = dlo;

    List<Auktion> auctionlist = (from a in dc.Auktion
                                 where a.KäuferID == null
                                 select a).ToList();
    return auctionlist;
}

这样,当您从数据库中检索Auktion对象时,将加载您的文章。