如何使用Linq从表中删除特定条目?

时间:2014-10-21 13:29:56

标签: c# linq

class Program {
 static void Main(string[] args) {
     pricingdemoEntities demo = new pricingdemoEntities();
     var output = (from result in demo.demotables where 
                   result.value == "array"
         select result).ToList();
     output.RemoveAll(x = > x.value == "array");
     demo.SaveChanges();
 }

我想删除我的表中value = "array"单独使用linq的所有条目。 我以上述方式尝试过。值将在列表中删除,但不会更新到表中。 请建议解决方案。![在此处输入图像说明] [1]

2 个答案:

答案 0 :(得分:2)

您没有从DB中删除它们,您正在做的是修改与您的数据库上下文无关的output列表。

foreach(var entry in output)
   demo.demotables.Remove(entry);

demo.SaveChanges();

除此之外,您应该使用using语句来处置DbContext

using(var demo = new pricingdemoEntities())
{
   ...
}

答案 1 :(得分:0)

只需跳过otuput变量:

class Program {
    static void Main(string[] args) {
        pricingdemoEntities demo = new pricingdemoEntities();
        demo.demotables.RemoveAll(x => x.value == "array");
        demo.SaveChanges();
    }
}