Чтобы сохранить сущность, вы обычно добавляете ее к DbSet
в контексте.
Например
var bar = new Bar();
bar.Name = "foo";
var context = new Context();
context.Bars.Add(bar);
Удивительно, но при запросе context.Bars
только что добавленная сущность не может быть найдена
var howMany = context.Bars.Count(b => b.Name == "foo");
// howMany == 0
После context.SaveChanges()
та же строка приведет к 1
Кажется, что DbSet
не знает изменений, пока они не сохранятся в БД.
К счастью, каждый DbSet
обладает свойством Local
, которое действует как сам DbSet
, но отражает все операции в памяти
var howMany = context.Bars.Local.Count(b => b.Name == "foo");
// howMany == 1
Вы также можете использовать Local
для добавления сущностей
context.Bars.Local.Add(bar);
и избавьтесь от странного поведения Entity Framework.