0

All,

We are using EF as our primary data access technology. Like many apps out there, we have a business objects/domain layer. This layers talks to our repository, which, in turn, talks to EF.

My question is: What is the best mechanism for passing the data back and forth to/from EF? Should we use the EF-generated entity classes (we did DB-first development, so we have entity classes that EF generated), create our own DTOs, use JSON or something else?

Of course, I could make an argument for each of these, as well as a counter-argument against them. I'm looking for opinions based on experience building a non-trivial application using a layered architecture and EF.

Thanks, John

4

2 回答 2

1

我会使用POCO 并将它们与 EF 一起使用。您仍然可以使用 DB first 方法来做到这一点。

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

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

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

于 2013-10-09T13:46:19.917 回答
0

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

于 2013-10-09T13:45:12.303 回答