如何动态生成Includes in entity framework

How to dynamically generate Includes in entity framework

嗯,我不确定之前是否有人问过这个问题,但我不知道如何搜索它。好吧,这不是 Entity Framework 指定的问题,但我将举例说明如何使用它。

所以在EF中我们需要使用.Include("Related Object")来包含相关数据。但是我想要的是编写一个方法,该方法采用字符串列表和 returns 实体或实体列表以及相关对象。

例如

public List<Entity> GetAll(List<string> includes>)
{
     List<Entity> entites = context.Entites;
     foreach(string s in includes)
     {
          entites.Include(s);
     }
     return entites;
}

显然上面的例子是行不通的,因为我在声明列表时已经调用了 Entites。但我认为这说明了这一点。

将您的局部变量声明为 DbQuery<Entity>,将 Include 调用的结果重新分配给它并在循环后对其调用 ToList

public List<Entity> GetAll(List<string> includes>)
{
     DbQuery<Entity> entites = context.Entites;
     foreach(string s in includes)
     {
          entities = entites.Include(s);
     }
     return entites.ToList();
}