繁体   English   中英

如何从ADO.net模型动态创建动态数据传输对象

[英]How do I create a dynamic data transfer object dynamically from ADO.net model

我有一个非常简单的数据库,其中包含5个表,PK和关系设置等。我还使用一个ASP.net MVC3项目来创建简单的Web服务,以使用post / get将JSON / XML馈送到移动应用程序。 为了访问我的数据,我使用ADO.net实体模型类来处理实体的生成等。

由于来自ADO.net实体模型的自动生成的关系所创建的序列化/循环引用问题,我不得不创建“​​数据传输对象”以剥离关系和不需要传输的数据。

问题1:是否有使用实体框架本身创建DTO的简便方法? IE,仅指定要转换为Jsonresults的实体属性? 如果可以,我不希望使用任何第三方框架。

问题2:关于实体框架的一个补充问题,比如说我在一个解决方案中的一个项目中创建了一个ADO.net实体模型。 因为该模型依赖于与项目A中指定的数据库的连接,所以项目B可以以某种方式使用具有类似连接的该模型吗? 两个项目都在同一个解决方案中。

谢谢!

我被迫创建“数据传输对象”以去除不需要传输的关系和数据。

您认为这很不好吗? 相反,这正是正确设计的ASP.NET MVC应用程序应该如何工作的:它应该使用视图模型。 而且不仅适用于返回JSON的操作,还适用于所有操作。 您应该避免将EF模型传递给视图。 视图永远不应该知道EF的存在。 视图模型是专门为满足视图要求而设计的类。 因此,控制器查询存储库以获取模型(EF),将其映射到视图模型并将其传递给要显示的视图。 为了简化模型和视图模型之间的映射,可以使用AutoMapper

RE:问题2:ObjectContext构造函数被重载以采用各种EntityConnections和Connection Strings。 重载之一应该使您到达需要的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM