我的所有实体类型都有一个基类,就像
public abstract class EntityBase<TEntityType> : IEntityBase where TEntityType : EntityBase<TEntityType>
{
private List<IBusinessRule> _brokenRules = new List<IBusinessRule>();
private int? _hashCode;
public int ID { private set; get; }
在我的映射中,我想使用每类表策略,但如何映射此 EntityBase 类?我尝试了 public class EntityBaseMap:ClassMap 但它不起作用。
那么我如何映射这个类呢?我想要这样做的原因是我不想写重复的东西Id(c=c.ID).Not.Null ....
等等,但将其放在一个映射类中。
我的映射类看起来像这样
public class EntityBaseMap : ClassMap<EntityBase<???>>
我应该插入什么而不是???
Thanks
您仍然可以通过反射来简化过程,方法是创建通用映射,然后使用运行时类型,而不是创建静态类型:
private static void AddWeakReferenceMappings(FluentMappingsContainer container, Assembly assembly)
{
var genericMappingType = typeof (WeakReferenceMap<>);
var entityTypes = assembly.GetTypes().Where(type => type.IsSubclassOf(typeof (Entity)));
foreach (var enitityType in entityTypes)
{
var newType = genericMappingType.MakeGenericType(enitityType);
container.Add(newType);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)