.Net core,ConcurrencyCheck在UseInMemoryDatabase时不起作用

时间:2018-04-11 12:36:33

标签: .net database concurrency core in-memory-database

我在内存数据库中用于单元测试。

在参赛作品中我有:

    [Required]
    [ConcurrencyCheck]
    [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
    public byte[] RowVersion { get; set; }

更改RowVersion后,SaveChanges不会抛出异常。 如果我使用SqlServer,一切正常。

我该怎么办?我不会在unitTests中使用sql Server

1 个答案:

答案 0 :(得分:0)

InMemory提供程序并不总是像关系数据库那样。

通过调用UseInMemoryDatabase(),您可以获得轻量级的近似连接到SQL Server数据库,但没有实际数据库连接和I / O操作的所有开销。

就像使用Mocks一样,对于绝大多数测试来说,这不重要。添加记录和阅读它们等基础工作正常。

但是,如果你想测试更像SQL Server的东西(例如检查参照完整性约束或者光学并发),那么你应该考虑使用SQLite内存模式。

testing with SQLite上查看此微软文章。