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

时间:2013-10-09 13:39:47

标签: c# entity-framework

所有

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

我的问题是:在EF之间来回传递数据的最佳机制是什么?我们应该使用EF生成的实体类(我们进行了DB-first开发,所以我们有EF生成的实体类),创建我们自己的DTO,使用JSON还是别的什么?

当然,我可以为这些中的每一个做出论证,以及反对它们的反驳。我正在寻找基于使用分层架构和EF构建非平凡应用程序的经验的意见。

谢谢, 约翰

2 个答案:

答案 0 :(得分:1)

我会使用POCOs and use them with EF。您仍然可以使用DB第一种方法来实现这一目标。

主要好处是您的业务对象不会与任何数据访问技术相关联。

您的基础存储机制可以并且将会改变,但您的POCO仍然存在。所有业务逻辑都可以轻松地重复使用和测试。

当你在寻找缺点时,我会说它可能需要更长的时间。但是,这个成本非常值得。

答案 1 :(得分:0)

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