簡體   English   中英

列表中不存在的數據庫中存在的記錄

[英]records that exist in the database that don't exist in the list

我在數據庫表“ Gifts”中有記錄,例如:

Id: 1, Name: A
Id: 2, Name: B
Id: 3, Name: C

IEnumerable<Gift> gifts ,修改后我具有來自用戶的元素,例如:

Id: 1, Name: A_update
Id: 3, Name: C_update
Id: 0, Name: D_new

現在,我希望數據庫中存在的記錄不存在於列表中-因此在此示例中,它應該是一個記錄:

Id: 2, Name: B

我怎么做,因為下面的代碼不起作用:

List<Gifts> result = db.Gifts.Where(x => !gifts.Select(y => y.Id).Contains(x.Id)).ToList();

無法創建類型為'MyProject.Models.Gift'的常量值。 在此上下文中僅支持原始類型或枚舉類型。

這是實體框架的限制。 In僅支持在表達式中使用某些特定的數據類型。

如果您使用Entity Framework 4.0或更高版本,則可以使用以下解決方法:

int[] giftIds = gifts.Select(y => y.Id);
List<Gifts> result = db.Gifts.Where(x => !giftIds.Contains(x.Id)).ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM