2012-06-08 1 views
0

SQL:NHibernate: отображение поле, состоящее из суммы ячеек

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

Mapping:

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); 

Мне нужно добавить FULLNAME поле, состоящее из [FirstName] + "" + [MiddleInitial ] + "" + [Фамилия]. (Для использования поиска в jqGrid)

Pls help me.

ответ

1

я делаю это с ФОРМУЛА

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

Его необходимо для ICriteria

1

Учитывая, что вы, кажется, используете это только на интерфейсе: как насчет неприкосновенности, только для чтения?

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

Невеста, но должна это сделать. В случае NHibernate настаивает на том, сохраняющиеся свойство, см here

Другой, наименее инвазивным, альтернативой является использование метода расширения для этой модели

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); 
    } 
} 
1

работа над режимом:

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

 Смежные вопросы

  • Нет связанных вопросов^_^