Метод Linq-to-entity Include не загружает связанные записи - PullRequest
1 голос
/ 10 июня 2009

В моей БД есть 3 таблицы: InvoiceDetailLineType, InvoicingCategory, CalculationRule.

InvoiceDetailLineType имеет внешние ключи как для InvoicingCategory, так и для CalculationRule.

Я хочу получить список всех объектов InvoiceDetailLineType для данной категории и включить связанные объекты CalculationRule и InvoicingCategory.

Вот мой способ сделать это:

public List<InvoiceDetailLineType> GetAllForCategory(InvoicingCategory category)
{
    return (from InvoiceDetailLineType lineType in ContextHelper.Entities.InvoiceDetailLineType.Include("CalculationRule").Include("InvoicingCategory")
            where lineType.InvoicingCategory.IdInvoicingCategory == category.IdInvoicingCategory
            select lineType).ToList();
}

Я ожидаю, что это даст мне то, что мне нужно, но то, что я получаю, это объект, чей CalculationRule равен нулю. Я убедился, что все внешние ключи настроены правильно и записи существуют в базе данных, поэтому это выглядит немного странно.

Я что-то упустил?

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 10 июня 2009

Хорошо, я нашел решение:

public List<InvoiceDetailLineType> GetAllForCategory(InvoicingCategory category)
{
    ObjectQuery<InvoiceDetailLineType> lineTypeQuery = ContextHelper.Entities.InvoiceDetailLineType.Include("CalculationRule").Include("InvoicingCategory");
    return lineTypeQuery.Where(t => t.InvoicingCategory.IdInvoicingCategory == category.IdInvoicingCategory).ToList();
}

Все еще не совсем уверен, почему у меня не сработал исходный код, если кто-нибудь может пролить свет на полноту, я был бы признателен.

0 голосов
/ 19 октября 2009
...