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