我有一个应用程序与两个数据库通信,它运行正常,我的测试通过,除非它尝试导出当前的数据库模式,它输出一个块中的两个数据库的所有内容,并在它尝试时验证对象模型/数据库模式行,当一个类(外部数据,即外部数据库)不应映射时,它会尝试在一个数据库中查找所有内容。我为类提供了一个映射覆盖,以便NH可以正确地加载/使用来自外部数据库的数据(它是只读的),但现在当我导出我的模式时,它会尝试创建该表。
我尝试IgnoreBase(typeof(Unit))
但这没有效果(而IgnoreBase(typeof(Entity))
确实可以正常工作)。我用[SessionFactory(DataGlobals.FOREIGN_DB_FACTORY_KEY)]
修饰了自定义存储库方法,其中只是定义了一个常量字符串,用作SessionFactory
的键,但我确定是否需要装饰类({{ 1}})使用或传递不同的参数Unit
...
SchemaExport
答案 0 :(得分:1)
在Fluent NHibernate中,您可以使用SchemaAction.None
禁用特定表的架构生成。
public class BankInfoMap : ClassMap<BankInfo>
{
public BankInfoMap()
{
Schema(“viplookups.dbo”);
Table(“bnkroute”);
SchemaAction.None();
Id(x => x.Id).Column(“bnkrouteid”);
Map(x => x.AbaNumber).Column(“crouting”);
Map(x => x.Name).Column(“ccompname”);
Map(x => x.City).Column(“ccity”);
Map(x => x.State).Column(“cstate”);
Map(x => x.PhoneNumber).Column(“cphone1″);
}
}
取自:http://lostechies.com/rodpaddock/2010/06/29/using-fluent-nhibernate-with-legacy-databases/