在实体框架中按键查找实体

时间:2011-07-19 14:09:04

标签: entity-framework

正在做

context.Single(x => x.Id == id);

完全相同
context.Find(new[] { id });

在实体框架中?

1 个答案:

答案 0 :(得分:3)

没有。 Find首先检查对象是否已加载到上下文中。如果是,它只返回此对象。如果没有,它从数据库中查询实体。 Single始终从数据库中查询对象。 如果它已经在上下文中,它将使用DB中的值进行更新。(编辑:最后一句错误,请参阅注释!)

如果对象既不在上下文中也不在数据库中,Find也会返回null。如果在数据库中找不到,则Single会抛出异常。

你的意思是:context.SomeEntitySet.Find(id)context.SomeEntitySet.Single(x => x.Id == id),我猜。