问题很简单我有功能NHibernate映射两类:流利的映射
public class A: EntityBase {}
public class B: EntityBase
{
public virtual A A_Something {get;set;}
}
与EntityBase类只提供Key属性。现在我想映射它们并配置我的分贝。因此,这里有映射
public class AMap : DomainEntityBase<A>
{
public AMap(){}
}
public class BMap : DomainEntityBase<B>
{
public BMap()
{
References(p=>p.A_Something).Column("A_ID");
}
}
和DB配置
Fluently.Configure().Database(...).Mappings(m =>
m.FluentMappings.Add<BMap>()).
ExposeConfiguration(BuildSchema).BuildSessionFactory();
配置与BMAP仅处理遗憾的是表上已经存在数据库里面,它的数据不能被改变(这是因为这个应用程序是使用更大的数据库的部分和那些部分不会被修改)。所以这个模式产生的标准异常
An association from the table [B] refers to an unmapped class: A
是否有可能以某种方式我的配置是一个已经存在的数据库内指定?如果不是,你有什么建议以温和的方式解决这个问题?当然,我可以准备* .sql文件来手动创建表B,但这不是一个解决方案(只是推开问题,因为在进一步开发过程中它肯定会回来)。还可以创建单独的数据库并从第一个数据库导入数据,但不幸的是需要将数据存储在一个(并且只有一个)数据库中。
和我的问题主要是如何给力nhibernate生成更新脚本而不是创建脚本。 – tchrikch 2010-09-17 14:09:25