我在制作地图时遇到了一些麻烦。
让我们说有人看书:
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实现。但这不是我问题的解决方案。
我该怎么办?
谢谢!
答案 0 :(得分:0)
我一直在处理同样的问题,看起来IUserType
实际上解决了这个问题。
查看我的问题(+回答):
Fluent NHibernate mapping IList<Point> as value to single column