NHibernate:为查询参数显式设置数据类型和长度
本文关键字:数据类型 设置 查询 参数 NHibernate | 更新日期: 2023-09-27 18:05:53
我使用NHibernate映射代码和sql server 2012。我还使用Sql2008ClientDriver作为会话工厂中的驱动程序。我一直在试图找出如何将精确的sql类型和长度映射到代表表的c#对象。我得到的问题是在生成的sql中指定的数据类型,特别是字符串。
例如:公共虚拟字符串SomeProperty {get;设置;}
在生成查询时,这转换为一个nvarchar(4000)参数,但该列在数据库中是一个char(6)。是否可以在映射中以某种方式指定这个?
我相信有性能损失,因为sql server在执行查询之前正在进行转换。
我试过这个(它不工作):http://notherdev.blogspot.com.au/2012/01/mapping-by-code-property.html
任何想法?
这是一个生成工作char(6)
字段的清晰映射。
Property(x => x.SomeProperty,
pm =>
{
pm.Type(NHibernateUtil.AnsiString);
pm.Length(6);
pm.Column(cm => cm.SqlType("char(6)"));
});
在您的映射文件中您可以指定sql-type
:
<property name="SomeProperty" type="String">
<column name="ColumnName" sql-type="char(6)" />
</property>