Я просматриваю огромный список бизнес-объектов и вставляю их в базу данных, используя Linq-to-Sql.
Некоторые бизнес-объекты содержат запись о способе оплаты (чеки, кредитная карта и т. Д.)
Когда дело доходит до добавления способа оплаты, я хочу проверить, чтобы убедиться, что я его еще не добавил, потому что в противном случае он будет раздражать меня, когда я приду, чтобы отправить свои изменения.
if ( !context.PaymentMethods.Any ( paymentMethod => paymentMethod.PaymentMethodID == iPaymentMethod.PaymentMethodID ) )
{
PaymentMethod method = new PaymentMethod ();
method.PaymentMethodID = iPaymentMethod.PaymentMethodID;
// etc...
context.PaymentMethods.InsertOnSubmit ( method );
}
Это не работает, я полагаю, потому что Any проверяет базу данных, а не список объектов, которые я собираюсь вставить при Submit.
Я знаю, что могу поддерживать свой собственный список, чтобы проверить, были ли записи уже добавлены, но чтобы сэкономить массу хлопот, мне просто было интересно, есть ли у Linq способ сделать это? Любой способ проверить context.PaymentMethods, чтобы увидеть, был ли он добавлен?