LINQ查询删除特定记录

时间:2010-08-08 23:54:31

标签: asp.net-mvc linq-to-sql

我需要删除表中的记录

对于一个CategoryId,我将有几个serviceTypes ..

Ex:CategoryId = 123与此相关的服务类型是1 2 3 4 5

我需要一个查询来删除servicetype 3到CategoryId 123 ..

我的方法将会传递

Deleterecord(CategoryId,ServiceTypeId);

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

lambda表达式是一个匿名函数,它主要用于在LINQ中创建委托。简单地说,它是一个没有声明的方法,即访问修饰符,返回值声明和名称。

在方法仅使用一次且方法定义很短的地方特别有用。它可以节省您向包含类声明和编写单独方法的工作。

优点:     减少打字。无需指定函数的名称,返回类型及其访问修饰符。     在阅读代码时,您无需在其他地方查找方法的定义。

Lambda表达式应该简短。复杂的定义使得调用代码难以阅读。

例如

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