Po prostu mam bardzo prostą sytuację, w której wszystko, czego potrzebuję, to usunięcie rekordu za pomocą Linq2Entities. Próbowałem przeprowadzić pewne badania i nadal nie potrafię znaleźć właściwej drogi.Właściwy sposób na usunięcie rekordu w LINQ do encji
Oto mój prosty kod:
[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();
}
}
mogę usunąć konkretny rekord, jeśli na przykład przypisać y.EmployeeName == „Harold Javier” metody kasowania powyżej, ale kiedy przypisać y .EmployeeId == z.EmployeeId na powyższy kod, usunięcie nie działa. (Uwaga: EmployeeId jest kluczem podstawowym tabeli Employee)
Na czym polega problem z kodem? Jakieś błędy?opublikuj je, jeśli tak. –
Możemy skompilować kod i wydaje się to w porządku. Ale gdy używamy go z ObjectDataSource (ASP.NET WebForm), przycisk Usuń nie działa. –
Wypróbuj 'ctx.Employees.DeleteOnSubmit (x)' zamiast 'ctx.DeleteObject (x)' – MarcinJuraszek