использование InMemoryDatabase в нескольких контекстах - PullRequest
0 голосов
/ 06 августа 2020

Я использую EF Core 3.1 и использую в памяти db для моих тестов xUnit. Я пытаюсь использовать то же самое в базе данных памяти в нескольких контекстах, как показано ниже.

 DbContextOptionsBuilder _builder = new DbContextOptionsBuilder();
 _builder.UseInMemoryDatabase("inMemoryDB");
 var guid = Guid.NewGuid();
 var parent = Parent(guid);
 var child1 = new Child(1, guid);
 var child2 = new Child(2, guid);

 using (var context = new AdministrationContext(_builder.Options))
 {
     parent.Child.Add(child1);
     parent.Child.Add(child2);
     context.Parents.Add(parent);
     context.SaveChanges();
 }

 using (var context = new AdministrationContext(_builder.Options))
 {
     // I can see saved parent object here as I am using AdministrationContext
     var list = context.Parents.ToList();
 }
 
 using (var context = new ReferenceContext(_builder.Options))
 {
     // getting empty list here as I am using ReferenceContext
     var list = context.Parents.ToList();
 }

У меня также есть тот же родительский и дочерний объект в ссылочном контексте.

Из ссылочного контекста я получаю пустые родительские данные. Это нормально работает, когда я использую сервер sql.

Следует ли использовать UseInMemoryDatabase для одного типа контекста? Или мне что-то здесь не хватает.

...