Reputation: 2857
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?
Upvotes: 2
Views: 82
Reputation: 364259
@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();
Upvotes: 5
Reputation: 86872
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();
Upvotes: 8