如何动态生成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();
}
嗯,我不确定之前是否有人问过这个问题,但我不知道如何搜索它。好吧,这不是 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();
}