使用 EF 并通过应用程序层传递数据

本文关键字:数据 应用程序 EF 使用 | 更新日期: 2023-09-27 18:34:30

All,

我们使用 EF 作为主要数据访问技术。像许多应用程序一样,我们有一个业务对象/域层。此层与存储库通信,而存储库又与 EF 通信。

我的问题是:将数据来回传递到 EF 的最佳机制是什么?我们应该使用 EF 生成的实体类(我们进行了数据库优先开发,因此我们有 EF 生成的实体类(、创建我们自己的 DTO、使用 JSON 还是其他东西?

当然,我可以对其中的每一个提出论据,也可以对它们提出反驳。我正在寻找基于使用分层体系结构和 EF 构建重要应用程序的经验的意见。

谢谢John

使用 EF 并通过应用程序层传递数据

我会使用 POCO 并将它们与 EF 一起使用。您仍然可以使用 DB 优先方法执行此操作。

主要好处是您的业务对象不会绑定到任何数据访问技术。

您的

底层存储机制可以并且将会发生变化,但您的 POCO 仍然存在。所有这些业务逻辑都很容易重用和测试。

当您正在寻找缺点时,我会说这可能需要更长的时间。但是,这笔费用是值得的。

使用 t4 模板,我将实际的 EF 生成的实体放在所有其他项目引用的公共项目中。我使用EF数据库首先创建的模型贯穿整个应用程序(包括用作视图模型(。如果我需要向不在数据库中的实体添加其他属性,我只需在公共项目中扩展实体的分部类。我已经使用这个模型编写了几十个大型nTier应用程序,它工作得很好。