我目前對我的一個項目使用Linq to Sql(dbml)。 (C#贏形式)Linq等於運算符
我創建的部分和元數據類模塊,並實現equals()和基於these Guidelines
我有問題== 是,當我嘗試使用這些等於操作在linq查詢中。
Entities.MyClass.Where(p => p.Equals(myClassObject));
我也嘗試以下
Entities.MyClass.Where(p => Object.Equals(p, myClassObject));
Entities.MyClass.Where(p => p == myClassObject);
什麼是實現這個的最佳方式?
而是試圖重載equals目前我正在做以下的(但我檢查8個值,所以它只是似乎很麻煩):
Entities.MyClass.Where(p => p.value1 == myClassObject.value1 && p.value2 == myClassObject.value2 ......)
究竟是什麼問題?你是否遇到錯誤,或者你不想檢查8個值? –
我比較'Objects'時總是使用經驗法則比較值時使用'.Equals'方法我使用'=='比較 – MethodMan
我假設問題是您的Linq提供程序不知道如何轉換您爲實體設置的'Equals'或'=='運算符。通常情況下,您會與主鍵進行比較,除非您專門測試與某些列集匹配的行。 – juharr