Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate: Как предотвратить загрузку BLOB-поля? / 8 сообщений из 8, страница 1 из 1
07.01.2009, 22:58
    #35746993
SergASh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate: Как предотвратить загрузку BLOB-поля?
Привет всем.

Есть таблица
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE [dbo].[tblListingImage]
(
  ListingImageId TYP_ID IDENTITY
 ,Image IMAGE NOT NULL
 ,Caption VARCHAR( 100 ) NOT NULL
 ,ImageWidth INT NOT NULL
 ,ImageHeight INT NOT NULL
 ,CONSTRAINT PK_ListingImage
    PRIMARY KEY ( ListingImageId )
)
и класс, прямолинейно отображённый на нее. Проблема в том, что поле картинки во многих случаях не нужно, а требуются только размеры и подпись. Но NHibernate всегда загружает данные полностью. Можно ли как-то NHibernate'у сказать, что в некоторых случаях такое-то поле загружать не надо?

Спасибо.
...
Рейтинг: 0 / 0
11.01.2009, 09:43
    #35750406
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate: Как предотвратить загрузку BLOB-поля?
Сделай два класса и напяль на одну таблицу. По желанию одному из них можно сделать mutable="false". Или копай в сторону "select new" из HQL.

Кстати, посмотри в NH 2.0 -- там, возожно, есть ленивая загрузка отдельных свойств.
...
Рейтинг: 0 / 0
12.01.2009, 11:54
    #35752129
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate: Как предотвратить загрузку BLOB-поля?
>Но NHibernate всегда загружает данные полностью. Можно ли как-то NHibernate'у сказать, что в некоторых случаях такое-то поле загружать не надо?

Организовать ленивую загрузку Lazy Load, подробности:
http://blogs.hibernatingrhinos.com/nhibernate/archive/2008/11/17/lazy-loading-blobs-and-the-like-in-nhibernate.aspx
...
Рейтинг: 0 / 0
08.10.2009, 11:48
    #36239277
grower_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate: Как предотвратить загрузку BLOB-поля?
Как предотвратить загрузку BLOB-поля в Entity Framework ? Какие есть предусмотренные для этого средства, куда копать ...
...
Рейтинг: 0 / 0
09.10.2009, 13:35
    #36241998
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate: Как предотвратить загрузку BLOB-поля?
grower_Как предотвратить загрузку BLOB-поля в Entity Framework ? Какие есть предусмотренные для этого средства, куда копать ...
Таблицу можно отразить как 2-е сущности: главная и дочерняя (содержащая BLOB).
Select к Главной без Include или Load не будет загружать это самое BLOB-поле.
...
Рейтинг: 0 / 0
09.10.2009, 14:10
    #36242120
Dmitry Sukhovilin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate: Как предотвратить загрузку BLOB-поля?
Хороший вопрос, подскажите как сделать маппинг для таких классов:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
class ListingInfo {
    public int ListingImageId {get;set;}
    public string Caption {get;set;}
}

class Listing : ListingInfo{
    /* тут все остальные пропертис*/
}


т.е. получать отдельно info (id, caption - для вывода, скажем, в dropdownlist) и отдельно все записи.

Спасибо.
...
Рейтинг: 0 / 0
09.10.2009, 14:25
    #36242194
grower_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate: Как предотвратить загрузку BLOB-поля?
Нашёл "Mapping multiple entity types to the same table."
http://blogs.msdn.com/adonet/archive/2008/12/05/table-splitting-mapping-multiple-entity-types-to-the-same-table.aspx
...
Рейтинг: 0 / 0
09.10.2009, 14:29
    #36242206
grower_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate: Как предотвратить загрузку BLOB-поля?
Таблицу можно отразить как 2-е сущности: главная и дочерняя (содержащая BLOB).
Select к Главной без Include или Load не будет загружать это самое BLOB-поле.[/quot]

Их нада связать один к одному, и прописать в CSDL Association
Код: plaintext
1.
2.
3.
  <ReferentialConstraint>
    <Principal Role="Product"><PropertyRef Name="id"/></Principal>
    <Dependent Role="ProductImages"><PropertyRef Name="id"/></Dependent>
  </ReferentialConstraint>
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate: Как предотвратить загрузку BLOB-поля? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]