Как сопоставить тип изображения в NHibernate?

У меня в базе данных SQL Server 2000 есть столбец с типом Изображение. Как я могу отобразить его в 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;
    ...
}