2010-02-25 73 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