三項演算子を使用して、値が null であるかどうかを確認し、いずれかの式を返そうとしています。これを LINQ 式に組み込むときに私が経験しているのは、LINQ 式の Transact-SQL 変換が「列 IS NULL」ではなく「列 = null」を実行しようとすることです。これは、次のことを行っているためだと信じる理由があります。
mappedColumnName == (myVar == null ? null : myOtherVar)
以下は Transact-SQL の columnName IS NULL に変換されるため:
mappedColumnName == null
誰もこれについて経験がありますか?これを機能させたいと思います。
LINQ 式全体:
(from MenuItem in menuContext.Menus
where MenuItem.IsSysAdmin == (ClientID == 1 ? true : false)
&& MenuItem.IsActive == true
&& MenuItem.ParentMenuCode == (ActiveSubMenu==null?null:ActiveMenu)
&& MenuItem.ClientID == (UseClientMenu ? ClientID : 0)
&& MenuItem.EmployeeID == (UseEmployeeMenu ? EmployeeID : 0)
orderby MenuItem.SortOrder, MenuItem.MenuName
select MenuItem);