我有一个表呼叫员工,有两个字段调用StaffStatus和ParentStatus。当StaffStatus和ParentStatus都“可用”时,我想将状态显示为“可用”,当StaffStaus或ParentStatus为“不可用”时,我将状态显示为“不可用”。
Friend Function getAllUser(strInput As String) As IQueryable
getAllUser = From userDB In db.Staffs
Select Status = userDB.UserStatus.Equals("Available") And userDB.ParentStatus.Equals("Available") ? "Available" : (userDB.UserStatus.Equals("Unavailable") Or userDB.ParentStatus.Equals("Unavailable") ? "Unavailable")
End Function
但代码编辑器显示:字符“?”不能在这里使用和语法错误的第一个“(”at“:( userDB.UserStatus.Equals(”Unavailable“)”。我的代码有错误吗?
答案 0 :(得分:1)
简单地说:VB.NET中没有三元运算符(当你使用它时) 请看这里:Is there a conditional ternary operator in VB.NET?
您必须使用Dim foo as String = If(bar = uz, cat, dog)
构造
编辑: 试试这个
Dim getAllUser = From userDb In db.Staffs
Select New Staff() With
{
.UserStatus = If(userDb.UserStatus.Equals("Available") And userDb.ParentStatus.Equals("Available"), "Available", If(userDb.UserStatus.Equals("Unavailable") Or userDb.ParentStatus.Equals("Unavailable"), "Unavailable", "SomeOtherValue"))
}