0

Im travaillant sur la reconstruction d'un logiciel client et ils veulent garder leur base de données aussi inchangée que possible.Fluent NHibernate - Plusieurs collections dans la même table

J'ai obtenu une table où ils collectent des utilisateurs et des commandes pour différentes entreprises, pas de biggie là-bas, mais la torsion est qu'ils le font pour plusieurs entités.

par exemple la table ressemble à ceci:

  • ID
  • UserID
  • Index
  • CompanyID
  • Type de

permet de dire qu'ils ont des entités comme projet et flux de travail , alors la colonne Type serait 'P 'pour les projets et' W 'pour les flux de travail. Donc, sur un ID est l'ID d'un projet ou d'une identité de flux de travail. L'ID utilisateur est toujours une clé étrangère pour une entité utilisateur et l'index est l'ordre dans lequel l'utilisateur est utilisé lorsque ce projet/workflow est utilisé. Et CompanyID est ce que la société possède l'entité de projet ou de workflow.

J'ai essayé de chercher google pour cela mais je suis venu avec rien. Ce que je veux est sur une carte d'entité de modèle deux collections disent StandardProjectUsers et StandardWorkflowUsers et ils devraient les rassembler des entités correctes avec un utilisateur et un index pour la compagnie courante. Est-ce possible avec un nhibernate fluent?

Répondre

2

Un bel article sur la façon de le faire: http://www.philliphaydon.com/2011/08/fluent-nhibernate-table-inheritance-discriminators/

Vous êtes à la recherche d'une stratégie table-per-hierarchy.

En un mot que vous utilisez:

public class BaseClassMap : ClassMap<BaseClass> 
{ 
    public BaseClassMap() 
    { 
     DiscriminateSubClassesOnColumn("Type"); 
     ... 
    } 
} 

public class WorkflowMap : SubclassMap<Workflow> 
{ 
    public WorkflowMap() 
    { 
     DiscriminatorValue("W"); 
     ... 
    } 
} 

public class ProjectMap : SubclassMap<Project> 
    { 
     public ProjectMap() 
     { 
      DiscriminatorValue("P"); 
      ... 
     } 
    } 
Questions connexes