3

エンティティ フレームワークを使用してデータベースに接続する WPF アプリケーションを作成しました。データベースには、実行したいストアド プロシージャがいくつかあります。ストアド プロシージャを関数として EF にインポートしましたが、そうでないことを除いてすべて問題ないようです。ストアド プロシージャを実行しても、データベースでは何も起こりません。同じデータを使用して SQL Server Management Studio でストアド プロシージャを実行すると、一部の行が期待どおりに処理されます。いつもそうではありませんでした。CONCAT_NULL_YIELDS_NULL、QUOTED_IDENTIFIER、ANSI_NULL_DFLT_ON、ANSI_PADDING、ANSI_WARNINGS、およびANSI_NULLSを無効にしたときにのみ、SQL Server Management Studioで機能し始めました。アプリケーション自体でも機能させるにはどうすればよいですか?

グイド

4

2 に答える 2

0

Entity Framework 6 を使用する場合、Ansi 警告をオフに設定できますが、その範囲は transaction です。 sp または savechanges メソッドを使用した場合は、このコードが必要であり、その後、そのトランザクションを破棄する必要があります。

DbContextTransaction _transactionContext;
_transactionContext = _Context.Database.BeginTransaction();
_Context.Database.ExecuteSqlCommand("SET ANSI_WARNINGS OFF");
//Start:Below code is project specific
_Context.Entry(SBSB_SUBSC).State = entityState;
status = status + _Context.SaveChanges();
//End
if (_transactionContext != null)
    _transactionContext.Dispose();
于 2016-09-14T11:59:34.337 に答える