2010-07-03 57 views
0

我用具有表存储多达5类用户有权限查看旧的数据库工作列:映射的IList项目

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

你可以做一些非常类似于<dynamic-component>,而不是IList<T>你需要映射IDictionary。见http://nhibernate.info/doc/nh/en/index.html#components-dynamic

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

+0

另请参阅:http://ayende.com/Blog/archive/2009/04/11/nhibernate-mapping-ltdynamic-componentgt.aspx – 2010-07-04 13:15:57