Как удалить запись по ее первичному ключу, не сделав сначала инструкцию SELECT для загрузки объекта?
Entity Framework: как удалить запись по ее первичному ключу?
Ответ 1
Вы можете использовать фиктивный объект:
var entity = new YourEntity { Key = yourKey };
context.Entities.Attach(entity);
context.Entities.DeleteObject(entity);
context.SaveChanges();
Ответ 2
Какую версию Entity Framework вы используете?
Если вы используете Entity Framework 4.1 или выше и используете класс DbContext, вы можете использовать метод ExecuteSqlCommand() для отправки оператора DELETE в базу данных. См. http://blogs.msdn.com/b/adonet/archive/2011/02/04/using-dbcontext-in-ef-feature-ctp5-part-10-raw-sql-queries.aspx (посмотрите раздел "Отправка исходных команд в раздел" База данных"). Это будет выглядеть примерно так:
DbContext ctx = ... get your DbContext somehow...
ctx.Database.ExecuteSqlCommand("DELETE FROM Foo WHERE FooID = 17");
Если вы используете Entity Framework 4.0 и ObjectContext (вместо DbContext), существует аналогичный метод ExecuteStoreCommand (http://msdn.microsoft.com/en-us/library/system.data.objects.objectcontext.executestorecommand. ASPX).
Ответ 3
В зависимости от того, когда вы читаете это, проверьте состояние этот билет, прежде чем внедрять какие-либо хаки.