我正在嘗試生成一種方法,該方法輸入兩個資料庫(.db)檔案,將它們加載到包含各種字串屬性和唯一 ID 的物件中。
db 檔案是從 LiteDB 實體創建的,并在 LiteDB 庫方法下分配了唯一 ID,如下所示:
Id = ObjectID.NewObjectId();
我試圖獲取兩個資料庫集合之間不同的所有專案,但不幸的是,我嘗試的任何 LINQ 查詢都失敗了,因為 ID 始終是唯一的,盡管物件中包含的所有其他值都是相同的。
我想執行一個 LINQ 查詢,該查詢將忽略物件中的 ID 欄位,但對該物件中的所有其他屬性進行比較,但我正在努力這樣做
我最初的想法是使用
var differences = items1.Except(items2)
但是,由于 ID 不同,這會將所有專案填充到差異集合中。
任何關于如何排除 id 比較的建議將不勝感激,該工具可用于數百萬條記錄,因此需要高效。
uj5u.com熱心網友回復:
Except有一個接受IEqualityComparer<T>. 您可以在一個類中以忽略 ID 的方式實作此介面,然后將該類的實體傳遞給該方法。如果您需要有關如何實作的參考,請參閱此示例IEqualityComparer<T>。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/453239.html
上一篇:LINQ查詢-自定義輸出、組標題
