(流畅)NHibernate - 将IList <myclass>映射到单个列</myclass>

时间:2009-08-27 10:10:46

标签: nhibernate fluent-nhibernate nhibernate-mapping

我在制作地图时遇到了一些麻烦。

让我们说有人看书:

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),将其映射到Persons表,如:

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

Books列将是IList Books集合的“序列化”表示。一行应该类似于:

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

在我正在建模的域中,我有一个包含许多此类列表的实体,我希望将每个列表存储在一列中,就像上面的“图书”列一样。

我发现(这里是SO)有关如何将IList映射到单个列的一些问题,指向解决问题的StringListObjectType:IUserType实现。但这不是我问题的解决方案。

我该怎么办?

谢谢!

1 个答案:

答案 0 :(得分:0)

我一直在处理同样的问题,看起来IUserType实际上解决了这个问题。

查看我的问题(+回答):
Fluent NHibernate mapping IList<Point> as value to single column