提供以下代码:
Animal a = new Animal { Name = "Rover", Type = "Dog" };
ctx.Animal.InsertOnSubmit(a);
让我们说前面的代码是一个被多次调用的方法。我不想两次提交相同的对象。是否可以使用DataContext
查询GetChangeSet()
以查看此对象是否已存在于ChangeSet中?
GetChangeSet().Insert
会返回一个IList<object>
我会在如何找到它时留空。
答案 0 :(得分:3)
想出来......使用问题的代码
ctx.GetChangeSet().Inserts.Any(ani => ani as Animal != null
&& ((Animal) ani).Name == a.Name);
答案 1 :(得分:1)
您可以改用OfType<T>()
扩展名方法。小清洁工。
ctx.GetChangeSet().Inserts
.OfType<Animal>().Any(ani => ani.Name == a.Name);