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] で構成される Fullname フィールドを追加する必要があります。(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がプロパティの永続化を主張する場合は、ここを参照してください

もう1つの最も侵襲性の低い代替方法は、そのモデルに拡張メソッドを使用することです。

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

私はこれをFORMULAで行います

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 に答える