如何在NHibernate中映射图像类型?

时间:2008-12-03 16:35:28

标签: c# sql-server nhibernate

我的SQL Server 2000数据库中有一个类型为图像的列。如何将其映射到NHibernate?

3 个答案:

答案 0 :(得分:13)

我们在映射配置文件上使用了BinaryBlob,在属性上使用了byte []。

答案 1 :(得分:1)

以下是我用于映射图像字段的示例代码。其中BlogImage是映射到字节类型属性BlogImage的Image Datatype列。 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>

答案 2 :(得分:0)

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>

C#-Class:

public class Company {
    ...
    private Image _logo;
    ...
}