5

大文字と小文字を区別しないテキスト検索が必要な EF/LINQ ステートメントがいくつかありますが、Oracle データベースでは大文字と小文字が区別されます。必要な ALTER SESSION ステートメントを接続/コマンド レベルで実行して、後続の同一コンテキスト呼び出しに影響を与えるにはどうすればよいですか?

実行する必要があると思われるコマンド ( OTN スレッド)

ALTER SESSION SET NLS_SORT=BINARY_CI

Database.ExecuteSqlCommandDatabase.Connection.CreateCommandの両方をメソッドとして認識していますが、「いつ」がわかりません。作成後、LINQ の前にコンテキストに対して手動でこれを実行しようとすると、手動で接続を開いたり閉じたりする必要があり、LINQ とは異なるトランザクションのようで、適用されていないようです。

4

2 に答える 2

0

最初のオプションは、使用している DB アカウントに「ログイン トリガー」を追加するよう DBA に依頼することです。欠点は 2 つあります。1 つはコマンドごとに設定されること、もう 1 つは DBA が、すべてに対してオラクルの事実上の「上位」を単純に実行しないことであなたを笑うことです。

これらの人は、コンテキストから離れた ExecuteStoreCommand を使用してそれをやってのけたようです。私は EF のファンではないので、ここではあまり役に立ちませんが、同じコンテキスト内で linq クエリを実行する必要があると思いますか? http://blogs.planetsoftware.com.au/paul/archive/2012/07/31/ef4-part-10-database-agnostic-linq-to-entities-part-2.aspx

EF のコマンド インターセプト機能で「実行」メソッドの 1 つを使用できる場合があります: http://msdn.microsoft.com/en-us/data/dn469464#BuildingBlocks

于 2014-03-19T15:14:45.410 に答える