Как мне удалить одну или несколько строк из моей таблицы, используя Linq to Entities * без * предварительного извлечения строк? - PullRequest
3 голосов
/ 21 октября 2009

Я понимаю, что могу сопоставить хранимую процедуру удаления с методом удаления для определенного типа.

Однако для этого необходимо передать извлеченный объект методу DeleteObject моего контекста.

Это достаточно плохо, но что если я захочу удалить 2000 строк? Могу ли я сделать это с помощью Linq to Entities без предварительного извлечения этих 2000 строк из базы данных и прохождения цикла, вызывающего DeleteObject?

Если такой функции не существует в Linq to Entities, и вы знаете, что это так, то, пожалуйста, просто скажите об этом, и я рассмотрю другие варианты!

Если он не существует напрямую, могу ли я добиться этого, передав по трубопроводу сохраненный процесс через Linq к сущностям?

1 Ответ

3 голосов
/ 21 октября 2009

Да, вы можете сделать это. С этот совет :

// Create an entity to represent the Entity you wish to delete
// Notice you don't need to know all the properties, in this
// case just the ID will do.
Category stub = new Category { ID = 4 };
// Now attach the category stub object to the "Categories" set.
// This puts the Entity into the context in the unchanged state,
// This is same state it would have had if you made the query
ctx.AttachTo("Categories", stub);
// Do the delete the category
ctx.DeleteObject(stub);
// Apply the delete to the database
ctx.SaveChanges();

См. полный совет для деталей и осложнений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...