C# 集成测试中的多个数据库上下文似乎间歇性失败,添加ToList()不会';我修不好
我在同事的集成测试中遇到间歇性问题,该测试作为单元测试运行。有时它在我的机器上工作,有时不工作,但当它停止工作时,它似乎会“卡住”一段时间不工作。我也不知道如何让它再次工作 当我尝试调试它时,错误出现在第二个DBContext(ctx1)中—它的错误是:C# 集成测试中的多个数据库上下文似乎间歇性失败,添加ToList()不会';我修不好,c#,entity-framework,entity-framework-6,dbcontext,C#,Entity Framework,Entity Framework 6,Dbcontext,我在同事的集成测试中遇到间歇性问题,该测试作为单元测试运行。有时它在我的机器上工作,有时不工作,但当它停止工作时,它似乎会“卡住”一段时间不工作。我也不知道如何让它再次工作 当我尝试调试它时,错误出现在第二个DBContext(ctx1)中—它的错误是: Message=无法将“MyCollection”上的“UpdateOn”属性设置为“null”值。必须将此属性设置为“System.DateTime”类型的非空值。 Source=EntityFramework collection.Loca
public void CanAddItem()
{
using (var transaction = new TransactionScope(TransactionScopeOption.Required,
new TimeSpan(0, 15, 0),
TransactionScopeAsyncFlowOption.Enabled))
{
int initialCount;
// Arrange
using (IMyDBContext ctx = new MyDBContext(new AppConfigReader()))
{
var matched = ctx.MyCollection;
initialCount = matched.Count();
var item = new MyItem
{
UpdatedOn = DateTime.Now;
};
// Act
ctx.MyCollection.Add(item);
ctx.SaveChanges();
}
//Assert
using (IMyDBContext ctx1 = new MyDBContext(new AppConfigReader()))
{
var collection = ctx1.MyCollection;
collection.Should().HaveCount(initialCount + 1);
}
}
我尝试添加.ToList()
以使var collection=ctx1.MyCollection.ToList()
,但它只是将错误移到该代码行中
我认为他使用两个上下文的基本原理是证明值总是写入数据库,并且不会被困在DbContext中。它总是在他的机器上运行
我需要让它一直工作下去。任何帮助都将不胜感激。因为全世界都会看到我愚蠢的错误。最后,我运行了SQL查询,这使我意识到实体定义与数据库定义不同,而且在我的数据库中,不时会出现UpdatedOn为NULL的值
吸取的教训。如果已经修复,请您接受自己的答案:)上面说我必须等待2天:(