LINQ Deletes
The following example deletes a record for a given Id.
Entities context = new Entities();
var query = from Customers in context.Customers
where Customers.Id == "anId"
select Customers;
context.DeleteObject(query.FirstOrDefault());
try {
context.SaveChanges();
} catch (Exception e) {
Console.Write(e.Message);
}
This next example deletes a group of records whose Name value equals "Cook, Brian". Do note that LINQ only
performs one delete operation per record at a time, as specified by a record's Id. Also note that because of this, LINQ
incurs a performance penalty as it opens a fresh connection with the data source everytime it deletes a record.
Entities context = new Entities();
var query = from Customers in context.Customers
where Customers.Name == "Cook, Brian"
select Customers;
foreach (var result in query) {
var delete = from Customers in context.Customers
where Customers.Id == result.Id
select Customers;
context.DeleteObject(delete.FirstOrDefault());
}
try {
context.SaveChanges();
} catch (Exception e) {
Console.Write(e.Message);
}