Команда удаления Linq-to-Sql не работает - PullRequest
1 голос
/ 12 сентября 2011

Ниже приведен простой запрос Linq-to-SQL для удаления записи адреса, связанной с данным идентификатором пользователя.Это выглядит правильно для меня и соответствует другим примерам, которым я следовал в Интернете.Однако, когда я выполняю его, запись не удаляется.И сообщение об ошибке не возвращается.Что я сделал не так?

protected void Button1_Click(object sender, EventArgs e)
    {
        int UserID = 250;

        SBMData2.SBMDataContext db = new SBMData2.SBMDataContext();

        var addresses = from a in db.Addresses
                        where a.UserID == UserID
                        select a;

        foreach (var address in addresses)
        {
            try
            {
                db.Addresses.DeleteOnSubmit(address);
            }
            catch (Exception ex)
            {

                Label1.Text = ex.StackTrace.ToString();
            }
        }
    }

Ответы [ 3 ]

4 голосов
/ 12 сентября 2011

Вы не отправили никаких изменений в своем примере. Вы только поставили в очередь изменения, которые будут сохранены после отправки.

Чтобы записать изменения в базу данных, вам нужно позвонить db.SubmitChanges();

3 голосов
/ 12 сентября 2011

Вам не хватает

db.SubmitChanges();

Поскольку вы не отправляете изменения, удаление никогда не будет выполнено.

0 голосов
/ 12 сентября 2011

Я бы сделал что-то вроде этого (хотя и не проверял)

protected void Button1_Click(object sender, EventArgs e)
{
    int userID = 250;
    SBMData2.SBMDataContext db = new SBMData2.SBMDataContext();

    var addresses = db.Addresses.Where(x => x.UserID == userId);

    foreach (var address in addresses)
    {
        try
        {
            db.Addresses.DeleteOnSubmit(address);
            db.SubmitChanges();
        }
        catch (Exception ex)
        {
            Label1.Text += ex.StackTrace.ToString();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...