Entity Framework 4 - перехватчики запросов без служб данных ADO.NET - PullRequest
1 голос
/ 07 апреля 2011

Мы используем Entity Framework 4 для доступа к нашей базе данных. В каждой таблице есть поля, связанные с безопасностью, которые мы хотели бы проверять при каждом запросе (например, дата начала / окончания, уровень безопасности, активный элемент или нет).

Можно ли определить что-то вроде глобального перехватчика запросов, который добавляет дополнительные проверки для полей безопасности? Я знаю, что для служб данных WCF существуют перехватчики запросов, но мы не используем службы данных.

1 Ответ

1 голос
/ 07 апреля 2011

К сожалению, нет. QueryInterceptor - это функция, относящаяся к службам данных WCF, и вся реализация, связанная с ее использованием, является внутренней, поэтому ее нельзя использовать в других местах без использования служб данных WCF.

В основном QueryInterceptor - это просто условие, добавленное к выполненному запросу, так что вы можете таким же образом обернуть свои данные доступом к классу, который предоставит такой метод, как:

public IQueryable<TEntity> GetQuery() where TEntity : IOwnedByUser
{
    return GetObjectSet<TEntity>().Where(e => e.Owner == CurrentUser.Login);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...