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

C# 使用EF并通过应用程序层传递数据,c#,entity-framework,C#,Entity Framework,全部, 我们使用EF作为主要的数据访问技术。与许多应用程序一样,我们有一个业务对象/域层。这些层与我们的存储库通信,而存储库又与EF通信 我的问题是:在EF之间来回传递数据的最佳机制是什么?我们应该使用EF生成的实体类(我们先开发DB,所以我们有EF生成的实体类)、创建我们自己的DTO、使用JSON还是其他什么 当然,我可以为每一个问题提出论点,也可以对它们提出反驳。我正在寻找基于使用分层体系结构和EF构建一个非平凡应用程序的经验的意见 谢谢, John使用t4模板,我将实际EF生成的实体放在一

全部,

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

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

当然,我可以为每一个问题提出论点,也可以对它们提出反驳。我正在寻找基于使用分层体系结构和EF构建一个非平凡应用程序的经验的意见

谢谢,
John

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

我会用它。您仍然可以使用DB-first方法来实现这一点

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

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

既然你在找犯人,我想可能需要更长时间。然而,这一代价是值得的