запрос структуры сущности и атрибут is_removed - PullRequest
0 голосов
/ 11 марта 2012

Я новичок в структуре сущностей, и я хочу сделать сервис на его основе, но у меня проблема с атрибутом is_removed, который есть в большинстве моих таблиц в базе данных.

Например, у меня есть таблица пользователей и статьиТаблица.Как пользователи, так и статьи могут быть удалены (is_removed = 1).Я не хочу работать с удаленными пользователями или статьями, и, кроме того, я не хочу создавать представления в моей базе данных, потому что, к сожалению, EF не дает мне возможности выполнять операции CRUD с представлениями, что мне нужно.

Так что в этой ситуации мне приходитсясоздавать запросы, используя атрибут is_removed для каждой таблицы, как эта (запрос возвращает все статьи для пользователя с заданным user_id):

db.User.Single(
    x => x.id == user_id && 
    x.is_removed == 0 
).Article.Where( 
    x => x.is_removed == 0 
);

Есть ли у вас какое-либо решение для этого?Есть ли способ сделать этот запрос без использования свойства is_removed для каждого запроса?

1 Ответ

0 голосов
/ 11 марта 2012

Я бы создал отдельный проект для материалов Linq To Entities и создал бы открытый класс для всех моих операций:

Создание проекта библиотеки классов Создание классов сущностей Создание имени класса, например: DALC Createобщедоступные свойства для DALC, например:

public IQueryable<Article> Articles { get { return context.Articles.Where(x => x.is_removed == 0); } }

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


Возможно, вы можете создать новые свойства для ваших сущностей: все сгенерированные классы сущностей являются частичными, и это означает, что вы можете расширять любые из них новыми свойствами, методами, полями.

Для класса User:

public IQueryable<Article> ActiveArticles { get { return this.Articles.Where(x => x.is_removed == 0); } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...