C# 可以用原始SQL组合LINQ吗? 问题:

C# 可以用原始SQL组合LINQ吗? 问题:,c#,entity-framework,linq,.net-core,entity-framework-core,C#,Entity Framework,Linq,.net Core,Entity Framework Core,结果表明,可以从原始SQL开始,然后使用LINQ生成的IQueryable 有可能做相反的事情吗?也就是说,给定一个IQueryable,是否用原始SQL修饰该“视图” 我试过的 我试着做: IQueryable<T> query = ...; var result = query.FromSql($"SELECT __result__.*, ... AS row_code FROM ({query.ToSql()}) AS __result__ WHERE ..."); IQu

结果表明,可以从原始SQL开始,然后使用LINQ生成的
IQueryable

有可能做相反的事情吗?也就是说,给定一个
IQueryable
,是否用原始SQL修饰该“视图”


我试过的 我试着做:

IQueryable<T> query = ...;
var result = query.FromSql($"SELECT __result__.*, ... AS row_code FROM ({query.ToSql()}) AS __result__ WHERE ...");
IQueryable查询=。。。;
var result=query.FromSql($“选择uuuu result.*…”作为行代码,从({query.ToSql()})作为uuu result_uuuwhere…”);
问题是,给定一个复杂的查询,似乎
IQueryable.FromSql
需要与原始
查询
完全相同的表别名。因此,例如,如果原始表别名是
'x.*
,那么,假设我们正在创建一个新的
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu


示例用例
我试图解决的具体问题是,使用用户变量,用计算出的行号(相对于其他分组的行号)装饰生成的
IQueryable
,然后只选择某些行号。

Hi,尝试这样做:var result=from a in Context.tableName join h in Context.tableName 2 on a.id=h.id join c in Context.id3 on a.id3=c.id3其中“what your want”选择new{“your code here”}@mrsWhite我不能使用LINQ to SQL,因为它不支持用户变量,这正是我尝试使用的。您可以从数据库集或EF内的数据库运行原始SQL,如果适用,请让我知道,我可以提供answer@andyb952这不适用。我知道你可以做到这一点,我已经提供了一个到文档的链接来解释这一点。我试图将
IQueryable
嵌入原始SQL查询中,而不是相反。明显的问题是,为什么不能使用相同的表别名?大概正确的表别名对于EF映射到属性名是必不可少的。