动态添加包含表达式

时间:2016-06-28 17:59:54

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

我正在使用Entity Framework Core,我有以下内容:

String expression = "Country;User;User.Country"

这表示在查询中包含Country,User和User.Country:

var q = context.Jobs
          .Include(x => x.Country)
          .Include(x => x.User).ThenInclude(x => x.Country);

我不知道将包含什么表达式。我只知道它将是一个实体列表,有或没有子实体(例如:User.Country),我需要构建包含表达式。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:5)

有两种方法可以调用include方法。一个是表达式,另一个是字符串。

String expression = "Country;User;User.Country"

string includes = expression.split(';');

var q = context.Jobs;

foreach (string include in includes)
    q = q.Include(include);