2009-08-27 2 views
2

У меня возникли проблемы с созданием сопоставления.(Fluent) NHibernate - отображение IList <MyClass> в одну колонку

Допустим, что люди читают книги:

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; 
    } 
} 

Я должен создать отображение (с Fluent NHibernate), который будет отображать это на стол людьми, что-то вроде:

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

Колонка Книги будет «сериализованным» представлением коллекции IList Books. Строка должна выглядеть примерно так:

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

В области моделирования я, у меня есть объект с большим количеством таких списков, и я хотел бы хранить каждый из списков в столбце, так как колонка Книги выше.

Я нашел (здесь в SO) некоторые вопросы, касающиеся того, как сопоставить IList с одним столбцом, указывая на реализацию StringListObjectType: IUserType, которая решает проблемы. Но это не решение моей проблемы.

Как я могу продолжить?

Спасибо!

ответ

Смежные вопросы