Linqを理解するのに少し問題があります。vb.netで次のlinqを使用します。
Dim qeurySearch = (From P In DB.table1
Where P.number = searchInput And P.valueCol = 2 OrElse
P.valueCol= 3 OrElse P.valueCol = 4
Select P.number , P.valueCol
).ToList
これから得られるのは4つのレコードです...それらはすべてsearchInputではありません。したがって、searchinputが「102」であり、同じテーブルにあるvalueColの値が「1」であるとします。それから私が期待するのは、それが機能しないことです、それは私に記録を与えないでしょう。しかし、それは間違っています。
何が起こるかというと、WHERE句のsearchInputを完全に無視し、P.valueCol=4レコードを提供します。それが唯一のWHERE句であるかのように。
クエリを正しい方法でフィルタリングする方法を知っている人はいますか?P.Numberを指定し、この列のP.valueColは1、2、または3のみにすることができます。