2009-08-27 12 views
2

Je rencontre des problèmes pour créer un mappage.(Couramment) NHibernate - mappage IList <MyClass> à une seule colonne

Disons que les personnes lisent des livres:

class Person : Entity 
{ 
    public virtual string Name { get; set; } 
    public virtual IList<Book> Books { get; set; } 
    /* ... */ 
} 

class Book : ValueObject 
{ 
    public virtual string Name { get; private set; } 
    public virtual int Pages { get; private set; } 

    public Book(string name, int pages) 
    { 
     Name = name; 
     Pages = pages; 
    } 

    public override string ToString() 
    { 
     return Name + "-" + Pages; 
    } 
} 

Je dois créer un mappage (avec Fluent NHibernate) qui tracera ce sur une table personnes, quelque chose comme:

 
Person: 
    Id: int, PK 
    Name: string 
    Books: string 

La colonne Livres sera une représentation "sérialisée" de la collection IList Books. Une ligne devrait ressembler à:

 
Person: 
    Id = 1 
    Name = "Bruno" 
    Books = "Code Complete-960,The Hobbit-310" 

Dans le domaine, je suis la modélisation, j'ai une entité avec beaucoup de ces listes, et je souhaite enregistrer chacune des listes dans une colonne, comme la colonne Livres au dessus.

J'ai trouvé (ici dans SO) quelques questions concernant la façon de mapper IList à une seule colonne, pointant vers une implémentation StringListObjectType: IUserType qui résout les problèmes. Mais ce n'est pas une solution à mon problème.

Comment procéder?

Merci!

Répondre

Questions connexes