2010-08-08 120 views
1

我需要從表LINQ查詢刪除特定記錄

對於一個類別ID我將有幾個serviceTypes刪除記錄..

例:與此相關的類別ID = 123的服務類型爲:1 2 3 4 5

我需要一個查詢來刪除的ServiceType 3的CategoryId 123 ..

我的方法將是我將通過

Deleterecord(CategoryId,ServiceTypeId); 
+0

什麼是你的數據的模式? – BritishDeveloper 2010-08-08 23:58:19

+0

SqlServer。謝謝 – kumar 2010-08-09 00:00:23

回答

3

如果你正在使用LINQ to SQL:

var service = Services 
    .Include("Category") 
    .First(s => s.ServiceId == 3 && s.Category.CategoryId == 123); 
context.Services.DeleteOnSubmit(service); 
context.SubmitChanges(); 

如果您使用實體框架:

var service = Services 
    .Include("Category") 
    .First(s => s.ServiceId == 3 && s.Category.CategoryId == 123); 
context.Services.DeleteObject(service); 
context.SaveChanges(); 
0

lambda表達式是一個匿名函數,它主要是用於創建代表LINQ。簡而言之,它是一種沒有聲明的方法,即訪問修飾符,返回值聲明和名稱。

在只使用一次方法的地方特別有用,而且方法定義很短。它爲您節省了向包含類聲明和編寫單獨方法的工作量。

優點: 減少打字。不需要指定函數的名稱,返回類型和訪問修飾符。 閱讀代碼時,您不需要在別處查看方法的定義。

Lambda表達式應該很短。複雜的定義使得調用代碼難以閱讀。

爲例

List<int> numbers = new List<int>{11,37,52}; 
List<int> oddNumbers = numbers.where(n => n % 2 == 1).ToList();