我在我的ASP.NET MVC网站上使用EF,我发现了一个问题'在一个新的actionresult()
方法中。
在同一个Action中,我在同一个Test表中有两个操作。
代码:
//Break point 01
_documentRepository.UpdateStatus(documentToUpload.IDDocument, Status.Admin);
//Break point 02 - Just create this aux var to break here and check the database.
var aux = 1;
//Break point 03
var documents = documentRepository.GetByID(documentToUpload.IDProtocol).ToList();
foreach(var doc in documents)
{
if(doc.Status == Status.Admin)
{
//Break point 04
//Never Breaks here.
}
}
当 断点02 触发时,我会转到数据库并检查文档的状态,它已经等于 Status.Admin (因为我在断点01代码中更改了)。但是当我得到一份文件清单时,我会检查这份清单,而且该文件仍处于旧状态。
它可能是什么?
编辑:
存储库代码:
public IEnumerable<Document> GetByID(Guid idProtocol)
{
return _context.Document.Where(d => d.IDProtocol.Equals(idProtocol));
}
答案 0 :(得分:0)
我找到了解决方案,这是我犯了错误。我使用相同的存储库对象来执行这两个操作。我在Action方法中创建了一个新的DocumentRepository对象,并用它来获取文档列表,然后我得到了列表更新。