1

我们正在着手开发一个新的企业应用程序,目前正在考虑技术堆栈。

它将是 .Net/SQL Server,因为这是我们都知道的。

该应用程序将为不同的平台(例如 Web、桌面 WPF、移动设备)提供不同的 UI,因此我们正在考虑创建 WCF 服务来容纳我们的业务/数据逻辑,以便每个 UI 都可以调用相同的逻辑。

我们也想首先使用实体​​框架代码,但过去当我们尝试过它时,当您开始跨边界传递实体时,实体框架从未如此出色,例如更改跟踪丢失,您必须开始手动计算如何更新实体并检查哪些子实体也已更改。

这些问题是否在较新版本的 WCF/EntityFramework 中得到解决?有没有我们可以查看的示例或模式来简化此过程?或者我们应该在这种情况下避免使用 EntityFramework 吗?

4

1 回答 1

0

这些问题是否在较新版本的 WCF/EntityFramework 中得到解决?有没有我们可以查看的示例或模式来简化此过程?或者我们应该在这种情况下避免使用 EntityFramework 吗?

不,他们没有。如果您不使用 EF,而您将直接使用 WCF 和 SQL,那么您的 WCF 将如何知道客户端上发生了哪些数据更改?是的,您必须通过在数据中传递一些附加信息或检查数据库中的当前状态来实现一种机制。如果您不将此更改检测移至客户端,则 EF 需要相同的方法。

如果您对将更改检测转移到客户端感到满意,并且您的服务层更像是数据库的网关,请使用 WCF 数据服务 - 他们将为您处理跨边界的更改跟踪,但您的客户端应用程序将不得不使用 WCF 数据服务生成的客户端。

于 2012-07-04T15:34:11.267 回答