0
我有接口:映射多接口继承类NHibernate的
public interface IHasList<T>
{
IList<T> Items { get; set; }
}
而且我想用一个一对多映射到表映射这样的类:
public class Model : IHasList<A>, IHasList<B>
{
...
}
灿我这样做?如果是,如何编写映射?
我有接口:映射多接口继承类NHibernate的
public interface IHasList<T>
{
IList<T> Items { get; set; }
}
而且我想用一个一对多映射到表映射这样的类:
public class Model : IHasList<A>, IHasList<B>
{
...
}
灿我这样做?如果是,如何编写映射?
这是可能的,但有点奇怪。
首先,为了在C#中声明这一点,模式是这样的:
public class Model : IHasList<A>, IHasList<B>
{
IList<A> IHasList<A>.Items { get; set; }
IList<B> IHasList<B>.Items { get; set; }
}
所以,你需要做的NHibernate明白:
<bag name="IHasList<A>.Items" table="ModelItemA">
<key />
<one-to-many class="A" />
</bag>
<bag name="IHasList<B>.Items" table="ModelItemB">
<key />
<one-to-many class="A" />
</bag>
(我假设A和B是具有常规一对多关系的映射实体,将其改变为多对多或元素,并根据需要添加级联/反转属性)
这很干净,混乱其实是在由XML转义导致。你还必须为类使用全名。
为什么这与其他任何映射不同? – Paco 2010-08-11 14:42:26