0

j'ai une base de données existante (qui est encore utilisé par une autre application héritée) où le groupe est dénormaliser et dupliqué dans les rangs de l'enfantparent-> enfant par rapport à parent-> groupe-> enfant

table parent 
(
    id 
) 

table child 
(
    id 
    parent_id 
    group_id 
    group_name 
    group_Flag 
    group_type 
    name 
) 

et je voudrais les associer à

class Parent 
{ 
    public long Id { get; private set; } 
    public ICollection<Group> Groups { get; private set; } 
} 
class Group 
{ 
    public long Id { get; set; } 
    public string Name { get; set; } 
    public GroupType Type { get; set; } 
    public bool Flag { get; set; } 
    public ICollection<Child> Childs { get; private set; } 
} 
class Child 
{ 
    public long Id { get; private set; } 
    public string Name { get; set; } 
} 
  1. Est-ce possible?
  2. Comment faire dans l'une des méthodes de cartographie de NHibernate (xml, mbc, Fluent, ...)

Mise à jour: Quelques infos supplémentaires

  • le schéma ne peut pas être changé en raison de l'application héritée
  • vues supplémentaires dans la base de données sont une option
  • fuite dans le modèle de classe est possible

Répondre

0

Voici quelques entrées:

Vous pouvez essayer de jeter un oeil à la section « collections mapping » de référence NHibernate: - http://nhibernate.info/doc/nh/en/index.html#mapping-declaration-collections

Ensuite, vous pouvez essayer de cartographier la propriété Groups de Parent classe en utilisant la clause « where » de la carte de collection:

(9) où (optionnel) spécifie une clause SQL WHERE à utiliser lors de la récupération ou l'élimination de la collection (utile si la collection ne doit contenir qu'un sous-ensemble de la données disponibles)

Et mappez la propriété Childs de la classe Group de la même manière.

Sinon, vous pouvez créer des vues pour présenter vos données différemment et mapper vos objets à ces points de vue (réglage mise à jour = « false » et insérer = « false » à votre identifiant mappage de propriété)

+0

Que dois-je mettre dans l'où pour les groupes? Les colonnes group_xxx sont les mêmes pour chaque enfant, les child_id sont inconnus/différents pour chaque parent. – Firo

+0

voir la mise à jour – mathieu

+0

si j'ai ma vue 'Groups (group_id, parent_id)' comment ajouter de nouveaux groupes à cela? – Firo

Questions connexes