我的SQL Server 2000数据库中有一个类型为图像的列。如何将其映射到NHibernate?
答案 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;
...
}