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

我刚开始使用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  : 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排除在接口之外似乎暂时可行,希望它不会引入任何其他问题