未添加实体

发布于 2024-11-06 10:52:40 字数 243 浏览 0 评论 0原文

采用以下基于 EF 的代码:

var newItem = context.Items.CreateObject();
newItem.ID = Guid.NewGuid();
newItem.Name = "Some text";
context.Items.AddObject(newItem);
int count = context.Items.Count();

在这种情况下什么会导致计数返回零?

Take the following EF based code:

var newItem = context.Items.CreateObject();
newItem.ID = Guid.NewGuid();
newItem.Name = "Some text";
context.Items.AddObject(newItem);
int count = context.Items.Count();

What would cause the count to return zero in this circumstance?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

君勿笑 2024-11-13 10:52:40

你忘了它

context.SaveChanges();

应该看起来像这样

var newItem = context.Items.CreateObject();
newItem.ID = Guid.NewGuid();
newItem.Name = "Some text";
context.Items.AddObject(newItem);
context.SaveChanges();   
int count = context.Items.Count();

You forgot

context.SaveChanges();

It should look like this

var newItem = context.Items.CreateObject();
newItem.ID = Guid.NewGuid();
newItem.Name = "Some text";
context.Items.AddObject(newItem);
context.SaveChanges();   
int count = context.Items.Count();
尬尬 2024-11-13 10:52:40

@约翰是对的。我只是补充一下为什么?您在调用 Count 之前没有调用 SaveChangesCountIQueryable 的扩展方法,它对数据库进行查询并返回存储实体的计数。您调用SaveChanges 的单元不会存储实体。

如果您想要待处理插入的数量,您可以调用:

var count = context.ObjectStateManager
                   .GetObjectStateEntries(EntityState.Added)
                   .Select(e => e.Entity)
                   .OfType<Item>()
                   .Count();

@John is right. I'm just adding why? You didn't call SaveChanges before calling Count. Count is extension method from IQueryable and it makes query to the database and return count of stored entities. Unit you call SaveChanges the entity is not stored.

If you want number of pending inserts you can call:

var count = context.ObjectStateManager
                   .GetObjectStateEntries(EntityState.Added)
                   .Select(e => e.Entity)
                   .OfType<Item>()
                   .Count();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文