2011-06-15 145 views
0

我是NHibernate的新手& FNH。下面是我想達到 有兩個實體映射器類「客戶」 &「訂單」FluentNHibernate一對多映射

客戶

Table("CUSTOMERTEST"); 
      LazyLoad(); 
      Id(x => x.CustomerId).Column("CustomerId").GeneratedBy.Sequence("SYS"); 
      Map(x => x.CompanyName).Column("CompanyName"); 
      Map(x => x.ContactName).Column("ContactName"); 
      HasMany(x => x.Orders).KeyColumn("CustomerId").Cascade.All().Table("ORDERTEST").AsBag(); 

訂購

Table("ORDERTEST"); 
      LazyLoad(); 
      Id(x => x.OrderId).Column("OrderId").GeneratedBy.Sequence("SYS"); 
      References(x => x.OrderedBy).Column("CustomerId"); 
      References(x => x.ProductDetails).Column("ProductId"); 
      Map(x => x.OrderDate).Column("OrderDate"); 
      Map(x => x.ShipToName).Column("ShipToName"); 

我試圖獲取的基本場景可以通過客戶實體類下面的屬性爲特定客戶訂購詳細信息。

public virtual IList<Order> Orders { 
      get { return new List<Order>(orders).AsReadOnly(); } 
      protected set { orders = value; } 
     } 

但我能夠獲取客戶實體對象中的客戶詳細信息,但他對特定客戶的「訂單」總是空的。我沒有做任何更新操作,我只需要從數據庫中提取數據。艾米我做錯了什麼,或者我們怎麼能得到這個?

在此先感謝

回答

0

在客戶類:

public virtual IList<Order> Orders 
     { 
      get { return _orders; } 
     } 

private readonly IList<Order> _orders = new List<Order>(); 

還可以添加公共方法來添加或從訂單

刪除項目