Sql server 如何在实体框架中将SQLServer查询转换为linq

Sql server 如何在实体框架中将SQLServer查询转换为linq,sql-server,asp.net-mvc-3,linq,Sql Server,Asp.net Mvc 3,Linq,我正在将sql server查询转换为linq SELECT * FROM DataFlow where FlowDeleted = 0 and DataFlow.FlowVersionNumber = ( SELECT MAX(FlowVersionNumber) from DataFlow i where FlowDeleted = 0 AND i.FlowCounter = DataFlow.FlowCounter group by F

我正在将
sql server
查询转换为
linq

 SELECT * FROM DataFlow where FlowDeleted = 0 and 
    DataFlow.FlowVersionNumber = 
    (
    SELECT MAX(FlowVersionNumber) from DataFlow i
    where FlowDeleted = 0 AND
    i.FlowCounter = DataFlow.FlowCounter
    group by FlowCounter
    )
    ORDER by 1
我的Linq查询代码是:

     public List<DataFlow> getdataflow() 
    var dflow = db.DataFlows.Where (
        d => d.FlowDeleted == false &&

        d.FlowVersionNumber =
        (
            db.DataFlows.Where(i => i.FlowDeleted == false && i.FlowCounter == d.FlowCounter).GroupBy(g => g.FlowCounter)
                .Select(s => s.Max(m => m.FlowVersionNumber))
        )
    )

.Select(s =>
    new DataFlow
    {
        FlowCounter = s.FlowCounter,
        FlowDescription = s.FlowDescription,
        FlowName = s.FlowName,
    }).OrderBy(o => o.FlowCounter);

    return dflow.ToList();
}
public List getdataflow()
var dflow=db.DataFlows.Where(
d=>d.FlowDeleted==false&&
d、 FlowVersionNumber=
(
其中(i=>i.FlowDeleted==false&&i.FlowCounter==d.FlowCounter).GroupBy(g=>g.FlowCounter)
.选择(s=>s.Max(m=>m.FlowVersionNumber))
)
)
。选择(s=>
新数据流
{
流量计数器=s.流量计数器,
FlowDescription=s.FlowDescription,
FlowName=s.FlowName,
}).OrderBy(o=>o.FlowCounter);
返回dflow.ToList();
}
但它给出的错误如下:
运算符“&&”不能应用于“bool”类型的操作数字符串'


请帮助我

您正在使用赋值运算符而不是比较…请尝试
.d.FlowVersionNumber==…

db.DataFlows.Where(d => 
    d.FlowDeleted == false &&
    d.FlowVersionNumber == db.DataFlows.Where(i => 
        i.FlowDeleted == false && 
        i.FlowCounter == d.FlowCounter).GroupBy(g => g.FlowCounter)
                                       .First(s => s.Max(m => m.FlowVersionNumber))
    )
)
我将
Select
更改为
First
,因为您需要比较标量。但是,请确保您将找到一个项目,否则可能会出现异常