0

SQL:

    [FirstName] [nvarchar](250) NULL,
    [MiddleInitial] [nvarchar](250) NULL,
    [Surname] [nvarchar](250) NULL,

映射:

    public string    FirstName { get; set; }
    public string    MiddleInitial { get; set; }
    public string    Surname { get; set; }

    m.Map(x => x.FirstName).Length(255);
    m.Map(x => x.MiddleInitial).Length(255);
    m.Map(x => x.Surname).Length(255);

我需要添加由 [FirstName] + " " +[MiddleInitial]+ " " + [Surname] 组成的全名字段。(用于在 jqGrid 中使用搜索)

请帮助我。

4

3 回答 3

1

考虑到您似乎只是在前端使用它:不可持久化的只读属性怎么样?

private static string _fullNameFormat = "{0} {1} {2}";
public string FullName
{
    get
    {
        return string.Format(_fullNameFormat,this.FirstName,this.MiddleInitial,this.Surname);
    }
}

未经测试,但应该这样做。如果 NHibernate 坚持保留该属性,请参见此处

另一种侵入性最小的替代方法是对该模型使用扩展方法

public static class ModelExtensions
{
    private static string _fullNameFormat = "{0} {1} {2}";
    public static string ToFullName(this Person person)
    {
        return string.Format(_fullNameFormat,person.FistName,person.MiddleInitial,person.Surname);
    }
}
于 2012-06-08T09:45:32.710 回答
1

我用公式做这个

Map(x => x.Fullname).Formula("select FirstName+ ' ' + Surname + ' ' + MiddleInitial from Customer");

ICriteria 需要它

于 2012-11-13T10:23:05.707 回答
1

在这种情况下,您将计算模型中的属性:

public string Fullname { get { return string.Format("{0} {1} {2}", FirstName, MiddleInitial, Surname) .Replace(" "," ").Trim(); } }

于 2012-11-15T06:39:26.000 回答