Dev*_*ble 2 c# entity-framework entity-framework-4
采用以下基于EF的代码:
var newItem = context.Items.CreateObject();
newItem.ID = Guid.NewGuid();
newItem.Name = "Some text";
context.Items.AddObject(newItem);
int count = context.Items.Count();
Run Code Online (Sandbox Code Playgroud)
在这种情况下,什么会导致计数返回零?
你忘了
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
它看起来应该是这样的
var newItem = context.Items.CreateObject();
newItem.ID = Guid.NewGuid();
newItem.Name = "Some text";
context.Items.AddObject(newItem);
context.SaveChanges();
int count = context.Items.Count();
Run Code Online (Sandbox Code Playgroud)
@John是对的.我只是添加为什么?你在打电话SaveChanges之前没有打电话Count.Count是扩展方法IQueryable,它对数据库进行查询并返回存储实体的数量.SaveChanges不存储您调用实体的单位.
如果您想要多个待处理插入,可以调用:
var count = context.ObjectStateManager
.GetObjectStateEntries(EntityState.Added)
.Select(e => e.Entity)
.OfType<Item>()
.Count();
Run Code Online (Sandbox Code Playgroud)