nHibernate + Fluent中可为空的字符串属性/列

时间:2011-02-10 12:37:23

标签: c# string nhibernate fluent-nhibernate nhibernate-mapping

我是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;组;正常工作,但我需要修剪。

1 个答案:

答案 0 :(得分:1)

问题可能是您无法修剪空字符串。尝试:

public string Genero
{
    get { return _genero; }
    set { _genero = string.IsNullOrEmpty(value) ? value : value.Trim(); }
}

根据您的映射,这可能会导致在刷新会话时将修剪后的字符串写入数据库。将字符串映射为私有字段并在getter中修剪它可能更好。