none
Как ограничить набор данных DbSet RRS feed

  • Вопрос

  • Создаю простое приложение с использованием Code First.

    Создал класс

    public class Author
    {
       public int AuthorID { get; set; }
       public string Email { get; set; }
       public string Name { get; set; }
       public bool Active { get; set; }
    }
    
    Далее определяю контекст:

    public class Library : DbContext
    {
        public DbSet<Author> Authors { get; set; }
    }
    

    Но при работе с датасетом, мне нужно, что б ВСЕГДА отсекались записи, где свойство Active = false

    Безусловно можно это делать при каждом обращении к Authors, но это не правильно.

    Где то уже встречал примеры, как оганичивать доступ к данным, но никак не могу найти.

    Может кто то помочь?

    12 октября 2011 г. 12:18

Ответы

Все ответы

  • > мне нужно, что б ВСЕГДА отсекались записи, где свойство Active = false
    Безусловно можно это делать при каждом обращении к Authors, но это не правильно
     

    база данных в sql server? можно создать view, в котором не будет записей с Active=false

     

    12 октября 2011 г. 12:46
  • Я разбираюсь сCodeFirst при котором база генерится автоматом, поэтому предложенный Вами способ не подходит, но все равно спасибо.

    Вопрос в том, что должен быть способ фильтрации данных в DbSet, но не могу найти примера.

    Кроме того, мне нужно перехватить все операции: вычитки данных, создания, обновления и удаления. Это хочу использовать для обеспечения механизма доступа к данным.

    Говоря общими словами, мне нужно добавить бизнес-логику обработки данных внутрь DbSet<Author> Authors

    А если более точнее, то внутрь всех DbSet<>, поскольку логика будет схожей.

    • Изменено MrSena 12 октября 2011 г. 13:08
    12 октября 2011 г. 12:55
  • > Вопрос в том, что должен быть способ фильтрации данных в DbSet, но не могу найти примера.
     

    см. How to create a custom IDbSet<> that always filters on a value given in the constructor?

    • Помечено в качестве ответа MrSena 12 октября 2011 г. 20:56
    12 октября 2011 г. 18:14
  • > Вопрос в том, что должен быть способ фильтрации данных в DbSet, но не могу найти примера.
     

    см. How to create a custom IDbSet<> that always filters on a value given in the constructor?


    Согласен, полезно!

    Спассибо.

    Это вообще единственный пример, который нашеля в интернете.

    Может кто видел еще решения, потому как этот пример требует времени, что б полностью разобраться...

    12 октября 2011 г. 20:20