Возможно, у вас есть решение. Прежде всего, его просто мысли мои, но я предполагаю, что мы будем работать в некоторых проблем в будущем: У нас есть businessfacade, который обрабатывает контекст вызова с выражением фильтра, скажем так:LINQ TO Объекты: Обработка включает
List<INDIVIDUAL> IIndividual.GetIndividuals(Expression<Func<INDIVIDUAL, bool>> filterExpression)
{
List<INDIVIDUAL> result = null;
this.FacadeAction(ctx =>
{
result = (filterExpression != null
? ctx.INDIVIDUALs.Where(filterExpression)
: ctx.INDIVIDUALs).ToList();
result.StartTracking();
});
return result;
}
Ничего особенного: если есть выражение, получите всех людей с этим фильтром, иначе верните все. Проблема сейчас: я хочу добавить другую таблицу для ОДНОГО случая. Итак, мои мысли: должен быть необязательный параметр, который я могу добавить в таблицы, с которыми я хочу включить. Поэтому мне не нужны функции x для одного и того же entitiyset, но можно динамически добавлять все таблицы, которые я хочу включить.
Как вы думаете, что-то подобное возможно? Это даже имеет смысл? Или лучше назвать фасад для каждого вопроса, который мне нужен?
Спасибо за ваш ответ!
Маттиас Мюллер
Мы используем функции facadeproxy для webservice. Таким образом, нет прямой возможности доступа к datalayer. Динамически включение таблиц будет отличной возможностью, не так ли? –
Если вы используете веб-службы, почему логика Expression должна поступать от клиента? Разве бизнес-логика не должна оставаться на сервере? – Kye
Да, но мне нужны сущности для загрузки текстовых полей в графическом интерфейсе. Поэтому вместо чтения INDIVIDUAL и COUNTRY я мог бы просто включить СТРАНА в ИНДИВИДУАЛЬНЫЙ. Но я думаю, что это невозможно. –