如何将以下查询转换为Linq?
SELECT DISTINCT TOP 10 A.*,A.X+A.Y AS SUMXY
FROM TABLE_A AS A INNER JOIN TABLE_B AS B ON A.ID = B.AID
ORDER BY SUMXY
我不想拆分成两个查询。
最佳答案
使用扩展方法并假设您在Table_A和Table_B之间具有外键关系,以便在TableAs表上有一个名为TableBs的EntitySet(使用实际表名会更容易...叹气)。
var query = db.TableAs.Where( a => a.TableBs.Count() > 0 )
.Select( a => new { A = a, SumXY = a.X + a.Y } )
.OrderBy( a => a.SumXY )
.Take( 10 );
这将带给您一组匿名类型的对象的集合,这些对象具有一个名为A的TableA对象和一个SumXY(可能是一个int)。另外,您可以创建一个包含A的数据加上总和的真实类,然后选择这种类型的对象。
关于c# - 如何使用Linq-To-Sql在同一查询中进行TOP,ORDER BY和DISTINCT?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/809545/