Почему dataContext.GetChangeSet (). Deletes.Count () всегда возвращает 0? - PullRequest
1 голос
/ 16 февраля 2011

У меня это происходит:

var customerIdsToDelete = new {1, 2, 3};
var dataContext = new DataContext();
var customersToDelete = (from c in data.Customers
                         where  customerIdsToDelete.Contains(c.CustomerID)
                         select c);
data.Customers.DeleteAllOnSubmit(customersToDelete);
data.SubmitChanges();

var deletedCount = data.GetChangeSet().Deletes.Count();

Даже при успешном удалении клиентов deletedCount будет равно 0.

Почему?И какой будет «правильный» способ подсчета количества customers удаленных?

Ответы [ 2 ]

3 голосов
/ 16 февраля 2011

Поскольку вы уже отправили изменения. После того, как был сделан вызов SubmitChanges, удаления не происходит, и поэтому (правильно) возвращается ноль. Чтобы получить количество удаленных (или подлежащих удалению) элементов, попробуйте следующее (т. Е. Определите количество до нажатия изменений):

...

var deletedCount = data.GetChangeSet().Deletes.Count();
data.SubmitChanges();

...
0 голосов
/ 16 февраля 2011

Предоставляет ли ваш метод SubmitChanges переопределение, которое принимает обратный вызов?

Я немного поработал с Silverlight и RIA Services, а метод SubmitChanges DomainContext имеет переопределение в виде SubmitChanges(Action<SubmitOperation>, object userState)

Мы называем это следующим образом:

mycontext.SubmitChanges( submitOperation => 
{
     //here, inside the callback, you can inspect
     //the submitOperation for the results
     //of the SubmitChanges method
}, null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...