2010-09-09 334 views
0

是否可以映射以下情况?NHibernate /流利NHibernate映射

  1. 的产品类(目前一台)
  2. 的账户类(现为表)
  3. 的accountproduct类(目前连接表,但与涉及具体的产品和帐户的其他信息)

我最喜欢的是账户产品扩展产品,并可以从账户作为财产产品提供。

产品类别将单独存在并提供它自己的距离。

回答

1

如何如下:

public class AccountProduct 
    { 
     public virtual int Id { get; set; } 
     public virtual DateTime Date { get; set; } 
     public virtual string Comments { get; set; } 

     public virtual Account Account { get; set; } 
     public virtual Product Product { get; set; } 

     public class AccountProductMap : ClassMap<AccountProduct> 
     { 
      public AccountProductMap() 
      { 
       Id(x => x.Id); 
       Map(x => x.Date); 
       Map(x => x.Comments); 
       References(x => x.Account); 
       References(x => x.Product); 
      } 
     } 
    } 

    public class Product 
    { 
     public virtual int Id { get; set; } 
     public virtual int Name { get; set; } 

     public class ProductMap : ClassMap<Product> 
     { 
      public ProductMap() 
      { 
       Id(x => x.Id); 
       Map(x => x.Name); 
      } 
     } 
    } 

    public class Account 
    { 
     public virtual int Id { get; set; } 
     public virtual int Name { get; set; } 

     public class AccountMap : ClassMap<Account> 
     { 
      public AccountMap() 
      { 
       Id(x => x.Id); 
       Map(x => x.Name); 
      } 
     } 
    } 
+0

感谢拉斐尔。您是否知道是否有可能将AccountProduct类从Product继承,并让Account类拥有AccountProducts称为Products的属性?从模型的角度来看,我最好只是公开产品和帐户,其中帐户有一个属性产品,专门链接到其产品并包含连接表额外数据(AccountProduct数据)。连接表并不是真的有目的。 – Sam 2010-09-09 15:56:01