我是nHibernate宇宙的新手,所以这个问题可能是白痴..
我有一个可以为空的nvarchar列的表。
在映射中我使用此Map(c => c.Genero, "genero").Nullable();
在属性中我使用trim来设置值,所以我有一个私有字符串和一个公共虚拟字符串。
当我在此表中执行select时,我在此属性的setter中收到运行时错误。
我试图将此属性传递给Nullable,但我收到编译时错误The type 'string' must be a non-nullable value type in order to use it as parameter 'T' in the generic type or method 'System.Nullable<T>'
。
我该怎么做?
谢谢大家!
更新
如果我只使用{get;组;正常工作,但我需要修剪。
答案 0 :(得分:1)
问题可能是您无法修剪空字符串。尝试:
public string Genero
{
get { return _genero; }
set { _genero = string.IsNullOrEmpty(value) ? value : value.Trim(); }
}
根据您的映射,这可能会导致在刷新会话时将修剪后的字符串写入数据库。将字符串映射为私有字段并在getter中修剪它可能更好。