更新Entity Framework集合的最有效方法是什么?

时间:2013-02-25 11:13:09

标签: asp.net entity-framework

不是一个非常有经验的EF家伙,所以我想问这个专家。

我有一个实体电话"申请人"。申请人可以拥有许多应用程序"。

我有一种搜索申请人的典型方法。如果申请人存在,则更新,否则添加。同时在两种情况下都添加了一个新的应用程序。

我有两种方法可以做到这一点:

1)创建或更新申请人并在之后立即单独创建申请。 2)创建或更新申请人,但将申请表添加到(申请人)的申请表中。

我的问题与选项2有关。当我从数据库中检索申请人并且它存在时,我然后将我的新申请表添加到其集合中。当我更新申请人时,它是否对其馆藏中的每个项目进行了更新,或者是否足够聪明,知道我只添加了1个新申请?换句话说,我是否在数据库中进行了不必要的往返旅行?

希望它有意义。

使用EF 4.3.1。

提前致谢。

1 个答案:

答案 0 :(得分:1)

不,它不会更新集合中的每个现有项目。 它只会发送您添加到集合中的新项目。

为了更好地查看EF发送的SQL查询,您可能需要查看使用ORM分析器。

您的选项为EFProfOrmProfiler

或者如果你想跳过付费选项,你可以使用linqpad或Sql Server Profiler工具(如果你有一个非快速版本的sql server来实现同样的目的。