2011-06-15 132 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>(); 

还可以添加公共方法来添加或从订单

删除项目