Fluent nhibernate 流畅地映射Id
当我试图映射我的类时,我遇到了以下问题Fluent nhibernate 流畅地映射Id,fluent-nhibernate,Fluent Nhibernate,当我试图映射我的类时,我遇到了以下问题 Stack trace: Inner exception message: could not resolve property: Project_ID of: Messenia.Data.Models.Project 这是我的配置 private StaticHibernate () { new NHibernate.ByteCode.Castle.ProxyFactoryFactory ();
Stack trace:
Inner exception message: could not resolve property: Project_ID of: Messenia.Data.Models.Project
这是我的配置
private StaticHibernate () {
new NHibernate.ByteCode.Castle.ProxyFactoryFactory ();
SessionFactory = Fluently.Configure ()
.Database (MySQLConfiguration.Standard
.ConnectionString ("database=messenia;server=localhost;uid=root;pwd=root"))
.ExposeConfiguration (c => c.Properties.Add ("hbm2ddl.keywords", "none"))
.Mappings(m => m.AutoMappings.Add(AutoMap.AssemblyOf<Entity>(new EntityAutoMappingConfiguration())
.IgnoreBase<Entity>()
.UseOverridesFromAssemblyOf<Entity>()
.Conventions.Add(typeof(PrimaryKeyNamePlusId)))) .BuildSessionFactory ();
以及:
类项目不包含属性项目\u Id,但它包含属性Id,所以为什么会出现此错误?谢谢。
有人能帮我解决这个问题吗?这是一个猜测,因为我总是发现FNH的默认Id处理非常令人满意,但是 我认为PrimaryKeyNamePlusId类告诉FNH希望实体中的所有ID属性都是_ID形式的,但您说项目实体的ID属性只是称为“ID”,所以FNH找不到它 您可以通过更改项目中的属性名称来测试这一点,例如
public virtual Guid Project_ID { get; protected set; }
看看错误是否消失了
public class PrimaryKeyNamePlusId : IIdConvention
{
public void Apply(IIdentityInstance instance)
{
instance.Column(instance.EntityType.Name + "_ID");
}
}
public virtual Guid Project_ID { get; protected set; }