1

私の質問は 2 つあります。まず、通常はentity.ExecuteStoreCommandObjectContext を操作するときのようなことをしますが、DBContext の場合はそうではないようです。

  • A) データベースでコミットされていない読み取りを行いたい場合は、どこかに設定する必要があると思いましたが、これは正しいことであり、DBConext の場合も同様です。
  • B)支払いの詳細などを操作するときにダーティーリードを推奨することは決してありませんが...他の人はそれがlinqステートメントのパフォーマンスを向上させることに気づきますか..誰かが参照統計などのポイントを持っていますか案件?

私のコード例

protected String isolationLevel = "SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;";
 public UserAccountDetail GetUserAccount(string userName, int userId)
        {
            using (var personEntity = new PersonEntity())
            {
                // set isolation level here such as... personEntity.ExecuteStoreCommand(isolationLevel, null);

                userAccountDetails = personEntity.UserAccountDetails.FirstOrDefault(q => q.Username == userName && q.UserID == userId);
            }
        }

パフォーマンス、ベストプラクティスなどに関して、いずれかがファットになる DBConext ポインターを持っている場合。

乾杯、シンプ

4

1 に答える 1

2

DbContext は分離レベルを設定しません。DbContext API を使用して SQL コマンドを実行する必要がある場合は、次のことができます。

dbContext.Database.ExecuteSqlCommand("Your SQL statement here");

DbContext オブジェクトをサポートする ObjectContext インスタンスが必要な場合は、次の操作を実行できます。

var objecCtx = ((IObjectContextAdapter)dbContext).ObjectContext;
于 2012-04-27T20:59:20.273 に答える