SQL Server CE是否支持使用NHibernate进行架构更新?

SQL Server CE是否支持使用NHibernate进行架构更新?,nhibernate,schema,sql-server-ce,Nhibernate,Schema,Sql Server Ce,SchemaExport似乎可以工作,但SchemaUpdate失败-SchemaUpdate。异常包含以下对象: System.NotSupportedException: The method is not supported. in System.Data.Common.DbConnection.GetSchema(String collectionName, String[] restrictionValues) in NHibernate.Dialect.Schema.Abstract

SchemaExport似乎可以工作,但SchemaUpdate失败-SchemaUpdate。异常包含以下对象:

System.NotSupportedException: The method is not supported.
in System.Data.Common.DbConnection.GetSchema(String collectionName, String[] restrictionValues)
in NHibernate.Dialect.Schema.AbstractDataBaseSchema.GetTables(String catalog, String schemaPattern, String tableNamePattern, String[] types)
in NHibernate.Tool.hbm2ddl.DatabaseMetadata.GetTableMetadata(String name, String schema, String catalog, Boolean isQuoted)
in NHibernate.Cfg.Configuration.GenerateSchemaUpdateScript(Dialect dialect, DatabaseMetadata databaseMetadata)
in NHibernate.Tool.hbm2ddl.SchemaUpdate.Execute(Action`1 scriptAction, Boolean doUpdate)

好的,我认为更有趣的是为什么模式更新不能与MS SQL的精简版一起工作

堆栈跟踪意味着不是NHibernate的方法失败,而是检索当前数据库模式的方法失败。 当使用MS SQL CE方言时,实际上应该在堆栈跟踪中调用System.Data.SqlServerCe.SqlCeConnection.GetSchema()。但是,仅显示DbConnection.GetSchema()。这意味着两件事:

  • 类SqlCeConnection不会重写此方法的实现,因此将调用基类的实现。但是,基类只不过是抛出NotSupportedException

  • NHibernate或适合MS SQL CE的方言对此无能为力。因此,这将是一个需要MS解决的问题


  • SQL Server Compact 4支持GetSchema-使用此版本而不是3.5

    “该方法不受支持”似乎相当明确。