Укажите активную загрузку в Fluent NHibernate Mapping - PullRequest
3 голосов
/ 26 мая 2011

Как я могу указать стремительную загрузку в коллекции «один ко многим» в отображении Fluent NHibernate?

Я попробовал следующее, но у меня все еще два запроса при получении родительского объекта и получении доступа к его «Возможностям»свойство:

            HasMany<FeatureInstance>(s => s.Features).AsSet()
            .Inverse()
            .Cascade.SaveUpdate()
            .KeyColumn("SiteId")
            .Access.ReadOnlyPropertyThroughCamelCaseField()
            .Not.LazyLoad();

Спасибо, Бен

Ответы [ 2 ]

1 голос
/ 26 мая 2011

Несмотря на то, что у вас есть два запроса, это все еще называется активной загрузкой, поскольку оба запроса выполняются немедленно (при отложенной загрузке второй запрос будет выполняться только по требованию).

Если вы ищете SQL-запрос JOIN, вы можете использовать .Fetch.Join() для принудительного ввода JOIN. Но имейте в виду, что когда вы позже захотите получить родительские объекты из базы данных с помощью запроса, результирующая коллекция будет содержать несколько копий каждого родителя, в зависимости от количества дочерних элементов (подумайте, сколько строк возвращает SQL JOIN ... ), поэтому в большинстве случаев это не очень полезно.

0 голосов
/ 26 мая 2011

Я думаю, что вы также должны определить стратегию извлечения. см здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...