У меня в базе данных SQL Server 2000 есть столбец с типом Изображение. Как я могу отобразить его в NHibernate?
Как сопоставить тип изображения в NHibernate?
Ответ 1
Мы использовали BinaryBlob в файле конфигурации сопоставления и байт [] в свойстве.
Ответ 2
Ниже приведен пример кода, который я использовал для сопоставления поля изображения. Где BlogImage был столбцом типа данных изображения, сопоставленным с типом свойства типа BlogImage. length = "2147483647" была использована для обеспечения полной копии изображения в базе данных, поскольку nhibernate несколько раз ограничивает максимальный размер данных, которые будут вставлены.
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true">
<class name="EAS.MINDSPACE.Infrastructure.Business.Entities.BlogMaster,EAS.MINDSPACE.Infrastructure.Business.Entities" lazy="false" table="BlogMaster" schema="dbo" >
<id name="BlogId" column="BlogId">
<generator class="native" />
</id>
<property name="BlogData" column="BlogData" />
<property name="BlogImage" column="BlogImage" length="2147483647" />
<property name="UserId" column="UserId" />
<property name="CreatedByName" column="CreatedBy" />
<property name="CreatedOn" column="CreatedOn" />
<property name="ReplyCount" column="ReplyCount" />
</class>
</hibernate-mapping>
Ответ 3
NHibernate 3.x делает все волшебство сам.
Sql:
Create table tblCompany (..., Logo image);
NHibernate-Mapping (важно установить длину!!!):
<class name="Company"
table="tblCompany">
...
<property name="_logo"
column="Logo"
not-null="false"
length="2147483647"
access="field" />
...
</class>
С# -Класс:
public class Company {
...
private Image _logo;
...
}