2
我有一个问题想删除与实体框架的对象,我以前查询上下文来获取对象的列表我需要删除,然后再一个一个我调用DeleteObject实体框架DeleteObject的查询项目很多
IQueryable result = context.CustomObjects.Where(t=>t.Property = something)
foreach (CustomObject customObj in result)
{
context.DeleteObject(customObj);
}
当我调用DeleteObject EF执行一个奇怪的查询,这样的事情:
exec sp_executesql N'SELECT
[Extent1].[Value1] AS [Value1],
[Extent1].[Value2] AS [Value2],
[Extent1].[Value3] AS [Value3],
FROM [CustomObject] AS [Extent1]
WHERE [Extent1].[ID] = @EntityKeyValue1',N'@EntityKeyValue1 int',@EntityKeyValue1=59
该查询似乎搜索所有与ID =东西的对象,但ID它只是为实体键的一部分的确由3个字段组成,因此它附着了n千个项目和m个这个过程非常缓慢,这是我无法理解的行为,我总是以这种方式删除对象,我从来没有这样的问题
有人可以有一个想法吗?
谢谢