我在内存数据库中用于单元测试。
在参赛作品中我有:
[Required]
[ConcurrencyCheck]
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public byte[] RowVersion { get; set; }
更改RowVersion后,SaveChanges不会抛出异常。 如果我使用SqlServer,一切正常。
我该怎么办?我不会在unitTests中使用sql Server
答案 0 :(得分:0)
InMemory提供程序并不总是像关系数据库那样。
通过调用UseInMemoryDatabase(),您可以获得轻量级的近似连接到SQL Server数据库,但没有实际数据库连接和I / O操作的所有开销。
就像使用Mocks一样,对于绝大多数测试来说,这不重要。添加记录和阅读它们等基础工作正常。
但是,如果你想测试更像SQL Server的东西(例如检查参照完整性约束或者光学并发),那么你应该考虑使用SQLite内存模式。
在testing with SQLite上查看此微软文章。