Fluent nhibernate 如何让Fluent NHibernate自动映射从接口继承的抽象类继承的类?
我刚开始使用Fluent NHibernate,在尝试自动映射实体时遇到以下问题:Fluent nhibernate 如何让Fluent NHibernate自动映射从接口继承的抽象类继承的类?,fluent-nhibernate,Fluent Nhibernate,我刚开始使用Fluent NHibernate,在尝试自动映射实体时遇到以下问题: public interface IDataEntity {} public abstract class PhysicalEntity : IDataEntity { public virtual int Id { get; set; } public virtual string Name { get; set; } } public class Mine : P
public interface IDataEntity {}
public abstract class PhysicalEntity : IDataEntity {
public virtual int Id { get; set; }
public virtual string Name { get; set; }
}
public class Mine : PhysicalEntity {
public virtual string MineString { get; set; }
}
private static ISessionFactory CreateSessionFactory()
{
return Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008
.ConnectionString(c => c.FromConnectionStringWithKey("CSMID_FNH")))
.Mappings(m =>
m.AutoMappings.Add(
AutoMap.AssemblyOf<Mine>()
.Where(t => t.Namespace == "DAL.DomainModel" && t.IsClass && !t.Name.EndsWith("Attribute") )
.IgnoreBase<PhysicalEntity>()))
.ExposeConfiguration(BuildSchema)
.BuildSessionFactory();
}
公共接口IDataEntity{}
公共抽象类物理实体:IDataEntity{
公共虚拟整数Id{get;set;}
公共虚拟字符串名称{get;set;}
}
公共级矿山:物理实体{
公共虚拟字符串MineString{get;set;}
}
私有静态ISessionFactory CreateSessionFactory()
{
流畅地返回。Configure()
.数据库(MsSqlConfiguration.MsSql2008
.ConnectionString(c=>c.FromConnectionString WithKey(“CSMID_FNH”))
.Mappings(m=>
m、 自动映射。添加(
自动映射
.Where(t=>t.Namespace==“DAL.DomainModel”&&t.IsClass&&t.Name.EndsWith(“属性”))
.IgnoreBase())
.ExposeConfiguration(构建架构)
.BuildSessionFactory();
}
现在,如果我删除对IDataEntity接口的引用,自动映射就可以工作了。我尝试在接口中插入ID字段,但是这会导致NHibernate运行时错误,告诉自动映射忽略IDataEntity类型也是如此。我错过了什么?我真的希望我域中的所有类都从IDataEntity继承 好的,我想我有答案了 我所要做的就是像这样修改我的身份: 公共接口IDataEntity { int Id{get;} } 我最初是用get和set来尝试的,但后来我会遇到问题,因为我的抽象类使用了一个受保护的集合,并且无法从接口继承。将setter排除在接口之外似乎暂时可行,希望它不会引入任何其他问题