0

IEnumerable<CreditCardTransaction>これは、繰り返し処理する を返す私のクエリです。

  public partial class CreditCardTransaction
  {

    public static IEnumerable<CreditCardTransaction> GetUnprocessedTransactions()
    {
      try
      {
        using (var context = new SuburbanEntities())
        {
          return from trans in context.CreditCardTransactions
                 where trans.IsPublished == false
                 select trans;
        }
      }
      catch (Exception ex)
      {
        Logging.Log("An error occurred.", "GetUnprocessedTransactions",Apps.ServicesConfig, ex);
        return null;
      }
    }

  }

これは、トランザクションを処理した後、これらのトランザクションを変更する場所です。

public void ProcessFile()
{
  try
  {
    _client = new TruckServiceClient();
    _globalSetting = new GlobalSetting();

    var unprocesstransactions = CreditCardTransaction.GetUnprocessedTransactions();
    foreach (var creditCardTransaction in unprocesstransactions)
    {
      creditCardTransaction.IsPublished = ProcessTransaction(creditCardTransaction);
    }     
  }
  catch (Exception ex)
  {
    Logging.Log("An error occurred.", "ProcessCreditCardTransactions.ProcessFile", Apps.RemoteServices, ex);
  }
}

ここでトランザクションを変更しています。

creditCardTransaction.IsPublished = ProcessTransaction(creditCardTransaction);

しかし、それらを保存したら、エンティティを直接更新できますか?それとも、この情報を戻す別のメソッドを作成する必要がありますか?

4

1 に答える 1

1

コンテキストにアクセスできない問題。ここにいくつかの方法の例があります: https://github.com/geersch/EntityFrameworkObjectContext

Asp.Net アプリを開発している場合は、この記事で説明されているいくつかの欠点があります: http://dotnetslackers.com/articles/ado_net/Managing-Entity-Framework-ObjectContext-lifespan-and-scope-in​​-n -layered-ASP-NET-applications.aspx#managing-objectcontext-instantiation

于 2013-02-25T01:31:30.443 に答える