DbSet:缺少添加的项目

ygo*_*goe 5 .net c# entity-framework

DbSet实体框架(6.1.3)的实体集合中,当我添加新项目时,之后不会从集合中返回它.这很奇怪也很意外.以下是一些收集的示例代码:

dbContext.Entities.ToArray();
// contains 3 entries
dbContext.Entities.Add(new Entity());
dbContext.Entities.ToArray();
// still contains 3 entries
Run Code Online (Sandbox Code Playgroud)

怎么会这样?当我dbContext.Entities在Visual Studio的即时窗口中查询时,它会显示"Local:Count = 4"之类的内容.为什么它会隐藏我的新物品?

更新:如果此集合没有做明显的事情 - 返回之前添加的内容 - 我需要做什么呢?它必须在首次调用时返回数据库中的所有记录,并且在以后调用时还必须包括所有更改(添加和删除).SaveChanges仅在用户完成编辑后调用.之前需要收藏!SaveChanges也可以在用户完成编辑之间的某处调用,但代码可能会返回,并且稍后会再次显示视图.

Dom*_*see 5

A DbSet有一个属性Local.这是一个ObservableCollection包含所有元素的.该DbSet对象本身仅代表查询到数据库中.

Local物业的文件:

获取一个ObservableCollection,它表示此集合中所有已添加,未更改和已修改实体的本地视图.当在上下文中添加或删除实体时,此本地视图将保持同步.同样,添加到本地视图或从本地视图中删除的实体将自动添加到上下文中或从上下文中删除.

因此,如果要访问元素,请始终使用该Local属性来执行此操作.