Объекты не добавляются - PullRequest
2 голосов
/ 11 мая 2011

Возьмите следующий код на основе EF:

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

Что может привести к тому, что счетчик вернет ноль в этом случае?

Ответы [ 2 ]

8 голосов
/ 11 мая 2011

Вы забыли

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();
5 голосов
/ 11 мая 2011

@ Джон прав. Я просто добавляю почему? Вы не звонили SaveChanges до звонка Count. Count - это метод расширения из IQueryable, который отправляет запрос в базу данных и возвращает количество сохраненных объектов Единица, которую вы называете SaveChanges, сущность не сохраняется.

Если вы хотите количество ожидающих вставок, вы можете позвонить:

var count = context.ObjectStateManager
                   .GetObjectStateEntries(EntityState.Added)
                   .Select(e => e.Entity)
                   .OfType<Item>()
                   .Count();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...