Запрос на удаление в Linq

У меня есть этот простой код, но он показывает ошибку. Я не знаю, где я иду не так, как надо. Это показывает ошибку в последней строке.

 linq_testDataContext db = new linq_testDataContext();
 var remove = from aremove in db.logins
         where aremove.username == userNameString && aremove.Password == pwdString
         select aremove;
 db.logins.DeleteOnSubmit(remove);
7
задан bradbury9 22 October 2019 в 14:47
поделиться

2 ответа

Вместо:

db.logins.DeleteOnSubmit(remove);

Вызовите DeleteAllOnSubmit () , например:

db.logins.DeleteAllOnSubmit(remove.ToList());

Не забудьте после этого вызвать db.SubmitChanges () . Вы также можете использовать .AsEnumerable () , либо или. Однако, если это большая операция удаления, вы можете подумать об обходе LINQ в этом случае.

2
ответ дан 7 December 2019 в 01:18
поделиться

DeleteOnSubmit принимает единственный объект. Вы передаете ему IEnumerable . Вместо этого используйте DeleteAllOnSubmit или выберите один объект из полученной коллекции, например:

var remove = (from aremove in db.logins 
             where aremove.username == userNameString 
                && aremove.Password == pwdString 
             select aremove).FirstOrDefault(); 

if(remove != null)
{
    db.logins.DeleteOnSubmit(remove);
}
4
ответ дан 7 December 2019 в 01:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: