Удалить последний элемент из таблицы -> Linq & SQL - PullRequest
1 голос
/ 16 декабря 2011

У меня есть следующая таблица:

Сообщения
ID (PK) int auto_inc
Сообщение varchar (100)

Я хотел бы удалить последний добавленный элемент в таблице, то есть элемент с наибольшим идентификатором?

Пока у меня есть следующее:

        protected void Button1_Click(object sender, EventArgs e)
        {
            DemoDataDataContext db = new DemoDataDataContext();

            //locate the record with the highest ID
            var deleteQuery =
                (from d in db.Messages
                 select d).Max();

            //remove it from the database

        } 

Я могу найти самый высокий идентификатор, но не уверен в синтаксисе, когда дело доходит до удаления этой записи ...

Ответы [ 4 ]

1 голос
/ 16 декабря 2011

Пример:

protected void Button1_Click(object sender, EventArgs e)
        {
            DemoDataDataContext db = new DemoDataDataContext();

            //locate the record with the highest ID
            var deleteQuery =
                (from d in db.Messages
                 order by d.ID
                 select d).LastOrDefault();

            //remove it from the database
            db.Messages.DeleteOnSubmit(deleteQuery);
            db.SubmitChanges();
        } 

при этом используется LastOrDefault(), а также будет удален последний элемент из базы данных.

0 голосов
/ 16 декабря 2011

Включите ваш контекст в использовании.Используйте «Удалить».Вызов SaveChanges.

public void DeleteLastMessage()
{
  using (var db = new DemoDataDataContext())
  {
    var lastMessage = (from m in db.Messages
                     orderby m.ID
                     select m)
                .LastOrDefault();

    db.Messages.Remove(lastMessage);
    db.SaveChanges();
  }
}
0 голосов
/ 16 декабря 2011

Если DemoDataDataContext дает вам метод DeleteAllOnSubmit (я сейчас не близок к интеллекту), вы можете использовать:

db.Messages.DeleteOnSubmit(deleteQuery).submitChanges();
0 голосов
/ 16 декабря 2011

попробуйте использовать LastOrDefault (); вместо max, чтобы получить последнюю запись в вашем linq statemtn ... или в вашем запросе выполнить сортировку по убыванию вашего основного идентификатора и выбрать top (1) ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...