Entity framework 4 实体框架新手-保存到数据库

Entity framework 4 实体框架新手-保存到数据库,entity-framework-4,Entity Framework 4,我有3张相连的桌子;ValidationRun有许多结果,其中有许多错误 以下代码成功保存到结果和错误表中,但未保存到ValidationRun 你能看到问题吗 private void WriteResultsToDB(SqlDataReader dr, XMLValidator validator) { using (var context = new ValidationResultsEntities())

我有3张相连的桌子;ValidationRun有许多结果,其中有许多错误

以下代码成功保存到结果和错误表中,但未保存到ValidationRun

你能看到问题吗

 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();    
            }    
        }

您似乎没有将跑步添加到上下文的任何部分。如果您正在添加的结果引用了它,更改跟踪器可能会知道它应该被保存,但在编写时,它只是一个孤立的对象,不会附着到任何地方。

是的,谢谢。我通过添加“run.Results.Add(result);”使其正常工作