编写LINQ尝试创建要在C#程序中运行的LINQ

编写LINQ尝试创建要在C#程序中运行的LINQ,linq,Linq,我目前正在创建一个下拉列表,并希望找到帮助编写LINQ查询 以下是我尝试复制的SQL: select IIf ( TA.[LeaseDeptSubmittal] IS NOT NULL AND TA.[LeaseDeptComplete] IS NULL, 'Lease Dept', IIf ( TA.[CompleteDate] IS NULL

我目前正在创建一个下拉列表,并希望找到帮助编写LINQ查询

以下是我尝试复制的SQL:

select  
IIf  
    (  
        TA.[LeaseDeptSubmittal] IS NOT NULL  
        AND TA.[LeaseDeptComplete]  IS NULL, 'Lease Dept',  
        IIf  
        (  
            TA.[CompleteDate]              IS NULL  
            AND TA.[RequestAddtnlInfo] IS NOT NULL, 'Need Info',  
            IIf  
            (  
                TA.[RequestDate] IS NULL, '',  
                IIf  
                (  
                    TA.[RequestDate]  IS NOT NULL  
                    AND TA.[CompleteDate] IS NULL, 'Pending', 'Complete'  
                )  
            )  
        )  
    ) , 
Id 
from Tasks TA  

您可以将
IIF
相当直接地转换为C#(LINQ)三元条件运算符,然后您就可以按照我的

我通常不会以这种方式缩进
?:
,但是嵌套非常深(在一种情况下是不必要的冗余),所以我将所有内容都移到了左边

我会像这样重新工作,以删除冗余测试,并清理一些逻辑:

var ans = from TA in Tasks
          select new {
            Status = (TA.LeaseDeptSubmittal != null &&
                      TA.LeaseDeptComplete == null)
                        ? "Lease Dept"
                        : TA.CompleteDate != null
                            ? "Complete"
                            : TA.RequestAddtnlInfo != null
                                ? "Need Info"
                                : TA.RequestDate != null
                                    ? "Pending"
                                    : "",

            TA.Id
          };

好啊那么你的问题是什么?你试过什么?你面临什么问题?这不是免费的“编写我的代码”服务,但我们将帮助您自己尝试解决问题。另外,这是为哪个DBMS编写的?使用
IIf
表示可能是Access还是SQL Server?但这将有助于我们确定。我很抱歉,我对这一切都不熟悉(昨天船上放了我,我还有外星脑细胞,如果你能帮忙,我会通过paypal寄美元);正确,我正在尝试将Access db转换为mvc5网站。我已经做了一些涉及多个连接的LINQ查询,但这是我第一次看到它这样做,所以我想我只是感到困惑。这就是我到目前为止所做的(但我正在尝试使用LINQ):公共字符串GetStatus(Task任务){string result=string.Empty;if(Task.leasedeptsubmission!=null&&Task.LeaseDeptComplete!=null){result=“Lease Dept”}else{if(Task.Completedate==null&&Task.RequestAddtnlInfo!=null){result=“Need Info”}else{if(Task.RequestDate==null){result=string.Empty;}否则{if(Task.RequestDate!=null&&Task.Completedate==null){result=“Pending”}else{result=“Complete”;}}}}返回结果;}
edit
按钮有助于为问题添加信息。不要在评论中这样做。
var ans = from TA in Tasks
          select new {
            Status = (TA.LeaseDeptSubmittal != null &&
                      TA.LeaseDeptComplete == null)
                        ? "Lease Dept"
                        : TA.CompleteDate != null
                            ? "Complete"
                            : TA.RequestAddtnlInfo != null
                                ? "Need Info"
                                : TA.RequestDate != null
                                    ? "Pending"
                                    : "",

            TA.Id
          };