为什么在Entity Framework Core中将CTE与Include一起使用会导致此错误:“调用存储过程时不支持Include操作”

时间:2018-08-08 14:32:05

标签: c# stored-procedures entity-framework-core common-table-expression

我意识到这个问题与this one类似,但是(我的感觉是)一个关键的区别是表面上我的代码不涉及存储过程。

基本上,我正在尝试这样做:

FormattableString fs = $"My Statment";

var x = _myEntitySet.FromSql(fs)
                .Include(a => a.SubTable)
                .Include(a => a.OtherTable)
                .ToList();

我发现的是,如果我的SQL查询包含CTE(公用表表达式)-甚至像这样简单:

FormattableString fs = $"WITH CTE AS (SELECT 1 AS [Column1]) SELECT * From MyTable}";

我收到以下错误:

  

调用存储过程时不支持Include操作。

由于我没有(知道)调用存储过程,所以发现错误很奇怪,并且想知道为什么会发生此错误,以及是否有某种方法可以解决该错误,以便可以将Include与SQL语句一起使用包括一个或多个CTE。

我正在使用Entity Framework Core 2.0。

0 个答案:

没有答案