我使用FluentNHibernate與AutoMapping和約定來創建我的數據庫。 我有3個表 - 人員,地址和工作如下所示。流利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; }
}
感謝您的響應 - I意在填補服務層上的ViewModel我不確定什麼是最好的查詢或方法。我使用正常的nHibernate查詢完成了它,然後使用AutoMapper從查詢結果中填充我的ViewModel。理想情況下,我喜歡使用Projections,但我沒有使用它們的經驗,查詢對我來說有點複雜。例如,ViewModel中Address的連接是有問題的。 – gisWeeper
我明白了。但與NHibernate沒有其他選擇,然後嘗試,學習它;)這些是我可以給你開始實驗的最佳鏈接*(見下文)*。一旦你開始玩查詢,預測,變形金剛 - 請不要猶豫,在這裏問**,我相信你會得到幫助。所以:* 15。標準查詢* - http://nhforge.org/doc/nh/en/index.html#querycriteria,甚至更多類型安全* 16。QueryOver查詢* 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,也可以通過http://stackoverflow.com/questions查看查詢的強大功能。/20528760 / –