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

SBF*_*ies 5 c# stored-procedures common-table-expression entity-framework-core

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

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

FormattableString fs = $"My Statment";

var x = _myEntitySet.FromSql(fs)
                .Include(a => a.SubTable)
                .Include(a => a.OtherTable)
                .ToList();
Run Code Online (Sandbox Code Playgroud)

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

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

我收到以下错误:

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

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

我正在使用Entity Framework Core 2.0。