首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在内存数据库中分离EF7

在内存数据库中分离EF7
EN

Stack Overflow用户
提问于 2016-01-21 22:00:25
回答 2查看 1K关注 0票数 7

有没有办法在内存数据库中创建一个单独的(隔离的) EF7实例?我在用xUnit编写的单元测试中使用了Entity Framework7中的内存数据库。我希望能够并行运行这些测试,但这是不可能的,因为似乎所有测试都使用相同的内存数据库。我希望每个测试都有一个独立的内存数据库,这个数据库不会与其他并行运行的测试共享。

EN

回答 2

Stack Overflow用户

发布于 2016-08-03 02:09:38

在EF核心中,您可以为InMemory数据库上下文传递一个数据库名称。

就像这样

代码语言:javascript
复制
var builder = new DbContextOptionsBuilder();
builder.UseInMemoryDatabase($"database{Guid.NewGuid()}");
票数 8
EN

Stack Overflow用户

发布于 2016-02-07 19:36:15

所以我还没有迁移到EF7 (仍然在EF6),但DbContext中的内部单例存在类似的问题(我认为是DbCompiledModel的缓存问题,我们的问题与运行时不同的映射有关,因此与您的问题不同)。不管怎样,试着为每个测试集合显式地创建这些。

如果您没有得到任何值得努力的速度改进,您可以使用[Collection("Memory Database Tests")]属性来确保使用相同内存数据库运行的测试不会并行运行(https://gist.github.com/bradwilson/8423477)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34925833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档