日期:2014-05-20  浏览次数:20909 次

LINQ中怎么在where里实现case when?
业务模型如下。

子公司A,其操作用户A1。子公司B,其操作用户B1。


1:A1在调岗调职模块,把子公司B里的某员工小李调出,调入到自己公司A的某部门下。此时双方的核准人都为空,该条记录为草稿状态。
2:A1进行提交,记录状态为已提交未审核。
3:A1属于子公司A,因此可以审核这条“调入公司是A”的记录,A1填写了调入公司核准信息。此时,记录状态仍旧是“未审核”(因为还缺少调出公司的审核)。
4:B1属于子公司B,能够审核这条“调出公司是B”的记录,B1填写调出公司核准信息。此时,记录状态变成“已审核”。

我的问题是,第3步和第4步的时候,怎么去实现“根据当前用户所属公司与记录中的调入公司或者调出公司比较,然后去显示还没有自己公司核准信息的记录”?

我记得sql中可以在where语句里写case when做另外的条件判断。
不知道在linq里如何实现,求各位大侠帮助。


------解决方案--------------------
在where条件里利用三元运算符可以实现case when的目的
------解决方案--------------------
linq to objects 可以用 switch case
linq to sql 用多个 ? : 条件求值运算符嵌套
------解决方案--------------------
Linq里有个.Select(o=>YouFunction(o))
再结合自己的函数回传
------解决方案--------------------
可以用三元运算符  一个不够可以嵌套着用