流畅的NHibernate:在SchemaExport期间不要为类生成任何映射

时间:2011-10-28 17:25:28

标签: fluent-nhibernate s#arp-architecture

我有一个应用程序与两个数据库通信,它运行正常,我的测试通过,除非它尝试导出当前的数据库模式,它输出一个块中的两个数据库的所有内容,并在它尝试时验证对象模型/数据库模式行,当一个类(外部数据,即外部数据库)不应映射时,它会尝试在一个数据库中查找所有内容。我为类提供了一个映射覆盖,以便NH可以正确地加载/使用来自外部数据库的数据(它是只读的),但现在当我导出我的模式时,它会尝试创建该表。

我尝试IgnoreBase(typeof(Unit))但这没有效果(而IgnoreBase(typeof(Entity))确实可以正常工作)。我用[SessionFactory(DataGlobals.FOREIGN_DB_FACTORY_KEY)]修饰了自定义存储库方法,其中只是定义了一个常量字符串,用作SessionFactory的键,但我确定是否需要装饰类({{ 1}})使用或传递不同的参数Unit ...

SchemaExport

1 个答案:

答案 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/