выборочно получать и удалять сообщения из базы данных - PullRequest
2 голосов
/ 19 февраля 2012

В моем приложении для Windows Phone 7 у меня есть класс базы данных, сгенерированный sqlmetal.кроме того, у меня есть класс, который помогает работать с этой базой данных.

    public static IList<Task> GetTasks()
    {
        IList<Task> tasks = new List<Task>();
        using (var context = new MyDBContext(ConnectionString))
        {
           tasks = (from emp in context.Tasks select emp).ToList();
        }
        return tasks;
    }

этот код возвращает все сообщения из базы данных.

Мои вопросы:

  • 1) Как получить сообщения, например, только с определенной датой (datetime) или идентификатором (int)?
  • 2) Есть ли способ удалить сообщения из базы данных?

Ответы [ 2 ]

1 голос
/ 19 февраля 2012

1) Вы должны добавить «где» в ваш оператор LINQ.Например:

from emp in context.Tasks select emp where emp.Date == new DateTime(2011, 11, 11)

2) Чтобы удалить сообщения из базы данных, вы должны сделать три простых шага:

  1. Получить сообщения, которые вы хотите удалить из db

    tasks = from emp in context.Tasks select emp where emp.Date > new DateTime(2011, 11, 11)

  2. Вызовите метод DeleteAllOnSubmit вашего объекта DataContext с нашими задачами для удаления

    dbContext.DeleteAllOnSubmit(tasks);

  3. Вызовите метод SubmitChahges вашего объекта DataContext.

    dbContext.SubmitChanges();

1 голос
/ 19 февраля 2012

Попробуйте:

tasks = from emp in context.Tasks 
        where emp.ID == yourId
        select emp;

Чтобы удалить сообщения из базы данных, используйте DeleteOnSubmit(entity), например:

context.Tasks.Attach(entityToDelete);
context.Tasks.DeleteOnSubmit(entityToDelete);
context.SubmitChanges();
...