所有
我们使用EF作为主要的数据访问技术。像许多应用程序一样,我们有一个业务对象/域层。这个层与我们的存储库进行对话,而存储库又与EF进行对话。
我的问题是:在EF之间来回传递数据的最佳机制是什么?我们应该使用EF生成的实体类(我们进行了DB-first开发,所以我们有EF生成的实体类),创建我们自己的DTO,使用JSON还是别的什么?
当然,我可以为这些中的每一个做出论证,以及反对它们的反驳。我正在寻找基于使用分层架构和EF构建非平凡应用程序的经验的意见。
谢谢, 约翰
答案 0 :(得分:1)
我会使用POCOs and use them with EF。您仍然可以使用DB第一种方法来实现这一目标。
主要好处是您的业务对象不会与任何数据访问技术相关联。
您的基础存储机制可以并且将会改变,但您的POCO仍然存在。所有业务逻辑都可以轻松地重复使用和测试。
当你在寻找缺点时,我会说它可能需要更长的时间。但是,这个成本非常值得。
答案 1 :(得分:0)
使用t4模板,我将实际的EF生成实体放在一个由所有其他项目引用的公共项目中。我使用EF数据库首先通过整个应用程序创建模型(包括用作视图模型)。如果我需要向不在数据库中的实体添加其他属性,我只需在公共项目中扩展实体的部分类。我已经使用这个模型编写了数十个大型nTier应用程序,并且它运行良好。