可能你有一个解决方案。首先它只是一个我的想法,但我想我们将来会遇到一些问题: 我们有一个businessfacade,它使用过滤器表达式处理上下文调用,我们这样说:
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功能用于相同的权利集,但可以动态添加我想要包含的所有表。
你觉得这样的事情有可能吗?这甚至有意义吗?或者为我需要的每个权利调用外观是否更好?
感谢您的回复!
MatthiasMüller
答案 0 :(得分:1)
我只需要在每次需要数据库时直接调用实体框架,而不是使用外观。否则你最终会添加Order,把函数作为参数,你的小方法最终会变得越来越大。
有趣的是,为什么你甚至使用Facade?您将来是否会更改数据访问层?