Я использую FluentNHibernate с AutoMapping и соглашениями для создания моей базы данных. У меня есть 3 стола - человек, адрес и работа, как показано ниже.Fluent nHibernate - сгладить объекты в ViewModel
//Database table
public class Person()
{
public virtual int Id { get; set; }
public virtual string FirestName { get; set; }
public virtual string SecondName { get; set; }
public virtual PersonAddress Address { get; set; }
public virtual PersonJob Job { get; set; }
}
//Database table
public class PersonAddress()
{
public virtual int Id { get; set; }
public virtual string AddressLine1 { get; set; }
public virtual string AddressLine2 { get; set; }
public virtual string AddressLine3 { get; set; }
}
//Database table
public class PersonJob()
{
public virtual int Id { get; set; }
public virtual int Description { get; set; }
}
Я хочу отобразить список персональных данных в сетке, используя сплющенную модель для просмотра ниже. Должен ли я создавать сопоставление для ViewModelPerson, даже если это не таблица базы данных (будет ли это повлиять на Automapping), или я должен сделать это, используя запрос nHibernate для создания списка объектов ViewModelPerson.
//NOT database table - only used as ViewModel
public class ViewModelPerson()
{
public virtual int PersonId { get; set; }
public virtual string FirestName { get; set; }
public virtual string SecondName { get; set; }
//AddressLine1 + AddressLine2 + AddressLine3
public virtual int AddressId { get; set; }
public virtual string Address { get; set; }
public virtual int JobId { get; set; }
public virtual string Job { get; set; }
}
Спасибо за ответ - я намеревался заполнить ViewModel на уровне сервиса Я просто не был уверен в том, какой лучший запрос или метод. Я сделал это, используя обычный запрос nHibernate, а затем используя AutoMapper для заполнения моего ViewModel из результатов запроса. В идеале я бы предпочел использовать Projections, но я не имел опыта их использования, и запрос был немного сложным для меня. Например, конкатенация адреса в ViewModel была проблематичной. – gisWeeper
Я вижу. Но с NHibernate нет другого выбора, затем попробуйте, изучите его;) Это лучшие ссылки, которые я могу дать вам начать экспериментировать * (см. Ниже) *. И как только вы начнете играть с запросами, проекциями, трансформаторами - сделайте **, не стесняйтесь спрашивать здесь **, и я уверен, что вы получите помощь. Итак: * 15. Критерии Запросы * - http://nhforge.org/doc/nh/en/index.html#querycriteria и даже более безопасный тип * 16.QueryOver Queries * http://nhforge.org/doc/nh/en/index.html#queryqueryover. Также проверьте это * 19.1.5. Использование пакетной выборки * http://nhforge.org/doc/nh/en/index.html#performance-fetching-batch –
Я имею в виду, вы наверняка получите помощь здесь, если у вас есть запрос и не знаете, как для перехода ... Общий учебник, скорее всего, выходит за рамки области. Наверное, ты знаешь, что я имею в виду. Вы можете проверить http://stackoverflow.com/a/20970816/1679310 или http://stackoverflow.com/a/19287008/1679310, а также этот Q & A, чтобы увидеть возможность запроса по http://stackoverflow.com/questions/20528760 / –