Entity Framework и Linq to Entities и .Include () несколько таблиц, или, может быть, - PullRequest
2 голосов
/ 27 мая 2009

У меня есть база данных с таблицей с именем PropertyValues, где я храню каждое значение, необходимое для описания некоторых свойств строк таблицы базы данных.

Например, таблица Products, которая выглядит так:

ID
OrderID // Таблица продуктов связана с таблицей заказов
ProductName
ProductType_ID // Идентификатор таблицы PropertyValues, которая описывает тип продукта (продукты питания, духи, химикаты)
ProductCountry_ID // Идентификатор таблицы PropertyValues, которая ссылается на страну, откуда поступил продукт ProductStatusID // также идентификатор таблицы PropertyValues, которая содержит статус продукта (доступен, недоступен)

с такой моделью базы данных, чтобы получить заказ и все его продукты с их типом, страной и статусом, мне нужно написать что-то вроде этого:

var orders = from o in dbEntities.Order.Include("Products.ProductType")
                                       .Include("Products.ProductCountry")
                                       .Include("Products.ProductStatus")
            select o;

и вопрос :)
Можно ли это сделать автоматически (поэтому будут включены все связанные объекты)
или может есть лучший подход?

Спасибо!

1 Ответ

2 голосов
/ 27 мая 2009

Я думаю, что вы ищете либо "Lazy Loading", либо "Eager Loading", как указал Алекс Джеймс.

В этом блоге объясняется, что «Ленивая загрузка» должна быть реализована в версии 4.0 Entity Framework.

http://blogs.msdn.com/adonet/archive/2009/05/12/sneak-preview-deferred-loading-in-entity-framework-4-0.aspx

Это можно сделать автоматически, Google "Entity Framework отложенной загрузки", чтобы приступить к настройке.

...