在nHibernate中为泛型类建模的最佳方式
本文关键字:最佳 方式 建模 泛型类 nHibernate | 更新日期: 2023-09-27 18:28:21
假设我有一个类,类似于。。。
public class SomeClass<T> where T : ISomeConstrainingInterface
{
public T MyPropertyOfTypeT {get;set;}
public int SomeIntProp {get;set;}
public string SomeStringProp {get;set;}
}
其中T可以是一个相当小的有限集(比如5或6种类型)
在nHibernate中映射此类的最佳和最有效的方法是什么?(使用fluentNHibernate)
这将为SomeClass的每个类型concreate创建一个单独的表,因此不同的Id类型没有问题,并且可以使用外键。SomeClass应该实现一个接口,这样所有的接口都可以被查询和处理。
public abstract class SomeClassMapBase<T> : ClassMap<SomeClass<T>>
{
public SomeClassMapBase()
{
Map(x => x.SomeIntProp);
Map(x => x.SomeStringProp);
}
}
public class SomeClassReferencedClassMap : SomeClassMapBase<ReferencedClass>
{
public SomeClassReferencedClassMap()
{
CompositeId()
.KeyReference(x => x.Referenced, "Refernece_id");
}
}