2012-01-04 11 views
0

s#arp liteフレームワークを使用してアプリケーションを構築しています。私のテーブルの1つはUserです。しかし、UserはSQL Server 2008のキーワードなので、問題が発生します。Nhibernate、テーブル名としてSQL Serverのキーワードを使用する方法?

SQL Serverのキーワードを使用してテーブルをサポートするようにコードを修正しようとしましたが、動作させることができませんでした。

ここにコードがあります。

https://github.com/codai/Sharp-Lite/blob/master/Example/MyStore/app/MyStore.NHibernateProvider/Conventions.cs

ライン32:私は、これは私には漠然と馴染みのようです

次のコードに
classCustomizer.Table("[" + Inflector.Net.Inflector.Singularize(type.Name.ToString()) + "]"); 

答えて

3

:)

https://github.com/codai/Sharp-Lite/blob/master/Example/MyStore/app/MyStore.NHibernateProvider/NHibernateInitializer.cs#L19

追加: db.KeywordsAutoImport = Hbm2DDLKeyWords.AutoQuoteを。あなたが行うことができますSQL Serverでのバッククォート `

「[ユーザー]」が、Oracleでのそれ:

あなたはまた、NHibernateはの非DB固有のエスケープ文字を利用することにより、手動でこれを行うことができますトリック

+0

ありがとう。これは私が探しているものです。 – qinking126

0

それを変更しました。 約束はしませんが、select * from "User"のように、Userの周りの引用符を使用しようとすることができます または Mydb.Userからselect *のようにスキーマの所有者をうまく提供します。

これが役に立ちます。がんばろう!私はすでに簡単に見つけることが他の人のために、ここで答えを投稿、メーリングリスト上でこれを答え(とポイントしている

+0

おかげで、動作していない、ユーザーの前後に引用符を使用してみました。 – qinking126

0

を行う必要があります違います。あなたが "` User`を使うならば、NHibernateはこれを現在作業しているデータベースに適応させます。

これは、この質問で見ることができます:あなたの助けをFluent NHibernate Column Mapping with Reserved Word

関連する問題