在为MS生成schema导出时,是否有一种方法可以告诉NHibernate对所有表和列名(如[MyColumn]
)使用方括号?我有一个遗留数据库,它使用某些列的保留名称,并运行使用NH生成的SQL脚本,因此引发错误。
我希望避免为每一列分别指定这一项。
更新:我使用的是正确的方言:
MsSqlConfiguration.MsSql2008.ConnectionString(connectionString)
更新2:@UpTheCreek为我指明了正确的方向--后退,这帮助我在"NHibernate in Action“一书中找到了答案(第76页):
除了在后台引用所有表名和列名之外,没有办法强迫NHibernate在任何地方使用引用的标识符。
发布于 2010-11-05 04:43:57
比较容易的办法:
SchemaMetadataUpdater.QuoteTableAndColumns(config)
(在建造SessionFactory之前)
它将自动引用所有保留的名称。
发布于 2010-11-05 01:21:00
在列名周围的映射文件中使用backticks。NH应该用您的db方言的正确字符(在您的例子中是方括号)替换这些字符。
即使用:
<class name="SomeClass" table="`SomeTable`">
注-它不能用撇号。背勾位于大多数键盘的左上角。
发布于 2010-11-05 01:11:27
您需要为数据库使用(或编写)正确的方言。
https://stackoverflow.com/questions/4104563
复制相似问题