2010-02-25 53 views
3

的SchemaExport似乎工作,但SchemaUpdate工具失敗 - 的SchemaUpdate.Exceptions包含此對象:SQL Server CE是否支持NHibernate的模式更新?

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) 
+2

「的方法不被支持」似乎相當明確。 – 2010-02-25 11:13:57

回答

2

固定的問題的SQL Server Compact 4支持的getSchema - 使用這個版本,而不是3.5

0

OK,我想這是更多的興趣爲什麼架構更新將不會與MS SQL的精簡版工作。

堆棧跟蹤意味着不是一個NHibernate的方法失敗,而是檢索當前數據庫模式的方法。 當使用MS SQL CE的方言時,實際上應該在堆棧跟蹤中調用System.Data.SqlServerCe.SqlCeConnection.GetSchema()。但是,只有DbConnection.GetSchema()出現。這意味着兩件事:

  1. SqlCeConnection類不重寫此方法的實現,因此將調用基類的實現。然而,基類只會拋出一個NotSupportedException異常NHibernate或適用於MS SQL CE的方言無法對此做任何事情。因此,這將是由MS

相關問題