我試圖找出如何做到這一套,我「米難住了。我敢肯定,這是一些簡單的我只是失蹤。如何搭配使用LINQ-2-SQL
說我有一個表,是一個名稱的集合,我要檢查,如果這些名稱的一個子集存在這樣的:?
var names = new List{ "John", "Steven", "Mary"};
var dbNames = from n in Db.Names
where n.FirstName == //names ???;
反正有沒有做到這一點
感謝
我試圖找出如何做到這一套,我「米難住了。我敢肯定,這是一些簡單的我只是失蹤。如何搭配使用LINQ-2-SQL
說我有一個表,是一個名稱的集合,我要檢查,如果這些名稱的一個子集存在這樣的:?
var names = new List{ "John", "Steven", "Mary"};
var dbNames = from n in Db.Names
where n.FirstName == //names ???;
反正有沒有做到這一點
感謝
where names.Contains(n.FirstName)
雖然你必須觀察你調用的類型 - 一些Contains方法不會被轉換爲LINQ到SQL。您可能需要先將它轉換爲IEnumerable或IQueryable,或者其他東西。
如果您正在查看整個集合是否存在於數據庫中,則應使用Intersect()。
var names = new List<string> { "John", "Steven", "Mary" };
var dbNames = Db.Names.Select(n => n.FirstName)
.Distinct();
bool isSubset = dbNames.Intersect(names).Count() == names.Count;
您希望交集的大小與第二集大小相同。如果是這種情況,那麼第二組是第一組的子集。