2010-09-09 6 views
0

Est-il possible de cartographier la situation suivante?NHibernate/Fluid NHibernate Mapping

  1. Une classe de produit (actuellement une table)
  2. Une classe de compte (actuellement une table)
  3. Une classe accountproduct (actuellement une table de jointure, mais avec des informations supplémentaires relatives à un produit spécifique et compte)

Ce que j'aimerais idéalement, c'est que le produit comptable étende le produit et soit disponible sur le compte en tant que produit.

La classe de produit existe séparément et fournit sa propre résistance.

Répondre

1

Que diriez-vous les éléments suivants:

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

Merci Rafael. Savez-vous s'il est possible que la classe AccountProduct hérite de Product et que la classe Account ait une propriété AccountProducts appelée Products? Du point de vue du modèle, je voudrais idéalement exposer simplement un produit et un compte où Account a une propriété Products qui lie spécifiquement à ses produits et inclut les données supplémentaires de la table de jointure (données AccountProduct). La table de jointure n'a pas vraiment de but en soi. – Sam