作者:易中天我最爱 | 来源:互联网 | 2022-12-08 12:29
如何解决《为什么在EntityFrameworkCore中将CTE与Include一起使用会导致此错误:“调用存储过程时不支持Include操作”》经验,请问有什么解决方案?
我意识到这个问题与此类似,但是(我的感觉是)一个关键的区别是表面上我的代码不涉及存储过程。
本质上,我正在尝试这样做:
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
与包含一个或多个CTE的SQL语句一起使用。
我正在使用Entity Framework Core 2.0。