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