Запрос GetChangeSet (), чтобы найти конкретный объект? - PullRequest
3 голосов
/ 12 августа 2010

Предоставление следующего кода:

Animal a = new Animal { Name = "Rover", Type = "Dog" };
ctx.Animal.InsertOnSubmit(a);

Допустим, предыдущий код находится в методе, который вызывается несколько раз.Я не хочу подавать один и тот же объект дважды.Можно ли запросить DataContext, используя GetChangeSet(), чтобы увидеть, существует ли этот объект в ChangeSet?

GetChangeSet().Insert возвращает IList<object> Я рисую пробел, чтобы узнать, как его найти.

Ответы [ 2 ]

3 голосов
/ 12 августа 2010

Разобрался ... Используя код вопроса

ctx.GetChangeSet().Inserts.Any(ani => ani as Animal != null 
                                   && ((Animal) ani).Name == a.Name); 
1 голос
/ 25 августа 2012

Вместо этого вы можете использовать метод расширения OfType<T>(). Немного чище.

ctx.GetChangeSet().Inserts
.OfType<Animal>().Any(ani => ani.Name == a.Name);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...