我只是遇到一个非常简单的情况,我只需要使用 Linq2Entities 删除记录。我试着做了一些研究,但仍然无法找到正确的方法。
这是我的简单代码:
[DataObjectMethod(DataObjectMethodType.Delete)]
public void DeleteEmployee(Employee z)
{
using (var ctx = new MyEntity())
{
var x = (from y in ctx.Employees
where y.EmployeeId == z.EmployeeId
select y).FirstOrDefault();
ctx.DeleteObject(x);
ctx.SaveChanges();
}
}
[DataObjectMethod(DataObjectMethodType.Select)]
public List<Employee> GetAllEmployee()
{
using (var ctx = new MyEntity())
{
var x = from y in ctx.Employees
select y;
return x.ToList();
}
}
如果我将 y.EmployeeName == "Harold Javier" 分配给上面的 Delete 方法,但当我分配 y.EmployeeId == z 时,我可以删除特定记录。 EmployeeId 到上面的代码,删除不起作用。 (注:EmployeeId是Employee表的主键)
最佳答案
我认为这是删除的更好选择
using (var ctx = new MyEntity())
{
var x = (from y in ctx.Employees
orderby y.EmployeeId descending
select y).FirstOrDefault();
ctx.Employees.Remove(x);
ctx.SaveChanges();
}
在我这边 DeleteObject
不工作所以我使用 Remove
关于c# - 在 LINQ to Entities 中删除记录的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15469684/