代码之家  ›  专栏  ›  技术社区  ›  Mark Rogers

你如何检查一张桌子是否有NHibernate(或Fluent)?

  •  5
  • Mark Rogers  · 技术社区  · 15 年前

    检查一张桌子是否存在于NHibernate(或Fluent NHibernate)中的最佳、最一致的方法是什么?

    有可能吗?我是说,对于这样一个重型ORM来说,这似乎是一个简单的任务。

    同样在一个相关的问题上,您可以检查一组表或整个模式是否与nhibernate一起存在吗?

    3 回复  |  直到 9 年前
        1
  •  12
  •   mhenrixon    15 年前

        public void ValidateSchema(Configuration config)
        {
            new SchemaValidator(config).Validate();
        }
    
        2
  •  3
  •   Mark Rogers    15 年前

    GetTableMetadata NHibernate.Tool.hbm2ddl.DatabaseMetadata

    Configuration

    connectionHelper.Prepare();
    connection = connectionHelper.Connection;
    meta = new DatabaseMetadata(connection, dialect);
    

    NHibernate.Cfg.Configuration

    ITableMetadata tableInfo = databaseMetadata.GetTableMetadata(...);
    
        3
  •  2
  •   MVC Newbie    9 年前

    var configuration = Fluently.Configure()
        .Database(MsSqlConfiguration
        .MsSql2008
        ...
        .BuildConfiguration();
    
        var session = configuration.BuildSessionFactory().OpenSession();
    
        DatabaseMetadata meta = new DatabaseMetadata((DbConnection)session.Connection, new NHibernate.Dialect.MsSql2008Dialect());
        //TABLE_NAME e.g. "hibernate_unique_key"
            if (meta.IsTable("TABLE_NAME"))
            {
            ...