2012-03-02 6 views
0

私は3つの結合テーブルを持っています。 ValidationRunは、次のコードは、結果およびエラーのテーブルではなくValidationRunへの保存に成功した多くのエラーEntity Framework初心者 - DBに保存

を持っている多くの結果を持っています。

問題が表示されますか?

private void WriteResultsToDB(SqlDataReader dr, XMLValidator validator)  
     {  
      using (var context = new ValidationResultsEntities())  
      {  
      var run = new ValidationRun { DateTime = DateTime.Now, XSDPath = this.txtXsd.Text };  

      //loop through table containing the processed XML  
      while (dr.Read())  
      {  
       var result = new Result  
       {  
        AddedDateTime = (DateTime)dr["Added"],  
        CustomerAcc = (string)dr["CustomerAcc"],  
        CustomerRef = (string)dr["CustomerRef"]  
       };  

       if (this.rdoRequest.Checked)  
       {  
        result.XMLMsg = (string)dr["RequestMSG"];  
       }  
       else  
       {  
        result.XMLMsg = (string)dr["ReplyMSG"];  
       }  

       if (validator.Validate(result.XMLMsg))  
       {  
        foreach (string error in validator.Errors)  
        {  
         result.Errors.Add(new Error { ErrorDescription = error });  
        }  
       }  
       else  
       {  
        //validator caught an error  
        result.Errors.Add(new Error { ErrorDescription = "XML could not be parsed" });  
       }  

       if (result.Errors.Count == 0) result.ValidFile = true; else result.ValidFile = false;  

       context.AddToResults(result);  
       context.SaveChanges();  
      }  
     } 

答えて

1

コンテキストのどの部分にもランを追加しているようには見えません。追加した結果によって参照された場合、変更トラッカーは保存されるはずであることを知っているかもしれませんが、書かれているとおり、どこにも繋がれていない孤立したオブジェクトです。

+0

ええ、ありがとうございます。私はそれに "run.Results.Add(result);" –

関連する問題