将IList项映射到列

时间:2010-07-03 14:38:55

标签: nhibernate nhibernate-mapping

我正在使用一个旧数据库,该数据库有一个表,最多可存储5个用户有权查看的类别:

USER_ELIGIBILITY
----------------
Eligibility_Id INT PRIMARY KEY
Eligibility_Name NVARCHAR(100)
CategoryId1 INT
CategoryId2 INT
CategoryId3 INT
CategoryId4 INT
CategoryId5 INT

以下是我创建课程的方法:

public Eligibility : Entity
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual IList<Category> AllowedCategories { get; set; }
}

这是建模的正确方法吗?如果是这样,我该如何映射呢?

1 个答案:

答案 0 :(得分:1)

您可以使用<dynamic-component>执行非常类似的操作,而不是IList<T>您需要映射IDictionary。请参阅http://nhibernate.info/doc/nh/en/index.html#components-dynamic

当然,您可以编写一个简单的包装器来忽略键,只关注调用代码的值。