2009-01-26 140 views
1

我有一个对象(过滤器)这是定义是这样的映射域实体到多个表

public class Filter 
{ 
    public int FilterId { get; set; } 

     public string Name { get; set; } 

     public IList<User> Users { get; set; } 
} 

如果可能的话,我想存储在多个表中(有时跨越多个行对象)

由于过滤器的初始化是这样的:

Filter myFilter = new Filter(); 
myFilter.FilterId = 1; 
myFilter.Name = "Name of my filter"; 
myFilter.Users.Add(new User("Joe", 10)); 
myFilter.Users.Add(new User("Jim", 20)); 

..I'd喜欢在表的“过滤器”是持久和“Filter_User”

筛选最终会:

1我的过滤器的名称

Filter_User将包含

110(参考。到乔的ID) 1 20(参考吉姆的ID)

我一直在看文档,我能找到的所有东西都是在我的映射文件中使用元素。但据我所知,只能让我用组件关系(即Employee和EmployeeDetails - 1:1)来做到这一点。

任何人都可以指出我正确的方向吗?

回答

3

我想你只是在寻找一个多对多的关联? 您不受限制使用组件关系。

你可以看看多对多的映射类型吗?

<set name="Users" table="Filter_User"> 
    <key column="filterid" /> 
    <many-to-many column="userid" class="User" /> 
</set>