Linq包含谓词的位置

时间:2017-04-15 19:26:53

标签: c# entity-framework linq entity-framework-core

db model schema

我在我的数据库中有这个模型,以及在ef核心中表示它的特定类。

我正在使用GenericRepository并尝试获取DietProduct表的集合,稍后将通过自动映射器对视图进行调整。

当我尝试使用DietproductLocalization获取所有活跃的DietProducts列表时,问题就开始了,其中LanguageId = @LanguageId;

我试图完成这样的通用方法:

public List<TEntity> FindComplex(Expression<Func<TEntity, bool>> predicate, params string[] includes)
        {
            IQueryable<TEntity> query = Context.Set<TEntity>();

            foreach (var include in includes)
                query = query.Include(include);

            return query.Where(predicate).ToList();
        }

然后使用select as:

int currentLanguage = LanguageUtility.GetLanguageId(CultureInfo.CurrentCulture);
var dp = _repo.DietProduct.FindComplex(x => x.Active 
                                            && x.DietProductLocalization
                                                 .Any(l => l.LanguageId == currentLanguage), "DietProductLocalization");

但到目前为止没有运气,因为它不断返回包含表格中的所有行,当然包含代表all or nothing

有没有办法编写泛型方法和特定查询,所以我不必使用内部联接的特定查询?

0 个答案:

没有答案