LINQ to Entities如何更新记录

Che*_*hev 39 c# linq linq-to-entities entity-framework entity-framework-4

好的,所以我是EF和LINQ的新手.我已经弄清楚如何INSERT和DELETE但由于某种原因UPDATE似乎逃脱了我的掌握.

以下是我的代码示例:

EntityDB dataBase = new EntityDB();
Customer c = new Customer
{
     Name = "Test",
     Gender = "Male
};
dataBase.Customers.AddObject(c);
dataBase.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

上面创建并添加了一个记录就好了.

Customer c = (from x in dataBase.Customers
             where x.Name == "Test"
             selext x).First();
dataBase.Customers.DeleteObject(c);
dataBase.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

以上有效删除了指定的记录.

现在我该如何更新?我似乎无法UpdateObject()在实体集合上找到" "方法.

tst*_*ter 82

只需修改其中一个返回的实体:

Customer c = (from x in dataBase.Customers
             where x.Name == "Test"
             select x).First();
c.Name = "New Name";
dataBase.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

请注意,您只能更新实体(扩展EntityObject的内容,而不是使用类似内容预测的内容) select new CustomObject{Name = x.Name}

  • 没关系。那行得通。我正在查看错误的数据。 (2认同)

小智 7

//用于更新

(from x in dataBase.Customers
         where x.Name == "Test"
         select x).ToList().ForEach(xx => xx.Name="New Name");
Run Code Online (Sandbox Code Playgroud)

//用于删除

dataBase.Customers.RemoveAll(x=>x.Name=="Name");
Run Code Online (Sandbox Code Playgroud)