为了账号安全,请及时绑定邮箱和手机立即绑定

EF包括其他实体(通用存储库模式)

EF包括其他实体(通用存储库模式)

C#
慕虎7371278 2019-10-15 09:13:54
我在Entity Framework Code First之上使用通用存储库模式。一切工作正常,直到我需要在查询中包含更多实体。我必须成功包含一个实体,但是现在我不知道如何包含多个实体。看看到目前为止我得到了什么:public IQueryable<TEntity> GetQuery<TEntity>() where TEntity : class{    var entityName = GetEntityName<TEntity>();    return _objectContext.CreateQuery<TEntity>(entityName);}public IList<TEntity> GetQueryWithInclude<TEntity>(string toInclude) where TEntity : class{    var entityName = GetEntityName<TEntity>();    return _objectContext.CreateQuery<TEntity>(entityName).Include(toInclude).ToList();}private string GetEntityName<TEntity>() where TEntity : class{    return string.Format("{0}.{1}", _objectContext.DefaultContainerName, _pluralizer.Pluralize(typeof(TEntity).Name));}我试图做但没用的是将字符串数组传递给函数,然后尝试将“包含”附加到查询顶部。我想知道如果我一次调用GetQueryWithInclude并一次传递一个实体名称(实际上是一个导航属性)来聚合查询结果该怎么办,但是我担心这可能会在每次调用时重复查询的结果...您认为什么是使它正常工作的最佳方法?提前致谢!更新:这是我要实现的目标的一个示例:public IQueryable GetQueryWithIncludes(string[] otherEntities){    var entityName = GetEntityName<TEntity>();    //now loop over the otherEntities array     //and append Include extensions to the query    //so inside the loop, something like:     _objectContext.GetQuery<TEntity>(entityName).Include(otherEntities[index]);}
查看完整描述

3 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

与硬编码的ObjectQuery(T)告别。


如果您使用的是EF> 4,那么它是内置的,请检查MSDN上的DbExtensions.Include。


查看完整回答
反对 回复 2019-10-15
  • 3 回答
  • 0 关注
  • 458 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信