У меня есть этот простой код, но он показывает ошибку. Я не знаю, где я иду не так, как надо. Это показывает ошибку в последней строке.
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);
Вместо:
db.logins.DeleteOnSubmit(remove);
Вызовите DeleteAllOnSubmit ()
, например:
db.logins.DeleteAllOnSubmit(remove.ToList());
Не забудьте после этого вызвать db.SubmitChanges ()
. Вы также можете использовать .AsEnumerable ()
, либо или. Однако, если это большая операция удаления, вы можете подумать об обходе LINQ в этом случае.
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);
}