[c#]使用 select 语句内现有的查询

发布时间: 2017/2/28 23:21:18
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我正在申请有使用 select statementSQL query 使用LINQ

我有下面的 SQL 查询已转换为 LINQ 在我在我的 ASP.Net MVC 应用程序中的控制器中使用

SQL 查询

Select * 
From CCUserDataList 
Where CCId IN (
    Select CompanyId 
    From Users 
    Where UserName="test") 
Order by ProductOrder, GradeOrder,TermOrder

上述查询给我我所需的结果,但我有问题在我的应用程序中使用它这里我使用的 LINQ ,如下所示

public override IQueryable<CCUserData> Get()
{
    return db.CCUserDataList
        .OrderBy(c => c.ProductOrder)
        .ThenBy(c => c.GradeOrder)
        .ThenBy(c => c.TermOrder);
}

当然以上和 LINQ 是不完整的如果它应该返回我的 SQL 查询相同的结果。

您能告诉我完整 LINQ 吗?

解决方法 1:

不知道您的类 / db 结构,我会说你可以做︰

var companyIds = db.Users.Where(u => u.UserName == "test").Select(u => u.CompanyId);
return db.CCUserDataList.Where(ccu => companyIds.Contains(ccu.CCId)).OrderBy....

联接的查询很可能也工作,顺便说一下

或也

return db.CCUserDataList
         .Where(ccu => db.Users
                         .Any(u => u.UserName == "test" && ccu.CCId == u.CompanyId));
赞助商