2

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

我有一个名为“申请人”的实体。一个申请人可以有许多“申请”。

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

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

1) 创建或更新申请人,然后立即单独创建一个应用程序。2) 创建或更新申请人,但将应用程序添加到(申请人的)应用程序集合中。

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

希望这是有道理的。

使用 EF 4.3.1。

提前致谢。

4

1 回答 1

1

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

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

您的选择是EFProfOrmProfiler

或者,如果您想跳过付费选项,您可以使用 linqpad 或 Sql Server Profiler 工具(如果您有非 express 版本的 sql server 来实现相同的功能。

于 2013-02-25T11:18:10.707 回答