首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET世界中的ORM和SOA

.NET世界中的ORM和SOA
EN

Stack Overflow用户
提问于 2009-01-05 09:33:36
回答 7查看 2.2K关注 0票数 11

根据我的经验,.NET的主要对象关系管理框架(NHibernateLinqToSqlEntity Framework)在跟踪加载的对象时工作得最好。这对于简单的客户端-服务器应用程序工作得很好,但是当在面向服务的体系结构中使用带有Web服务的三层或更多层体系结构时,这是不可能的。最终,通过自己编写大量代码来进行跟踪,可以做到这一点,但是ORM不是应该简化数据库访问吗?

在面向服务的架构中使用ORM的想法好吗?

EN

回答 7

Stack Overflow用户

发布于 2009-01-05 11:47:48

LLBLGen Pro在实体内部具有更改跟踪功能。这意味着您可以使用预取路径(即每个图形节点一个查询)从数据库中获取一个图形,并通过线路将其序列化到客户端,在那里更改它,将其发送回去,然后直接保存该图形,因为所有更改跟踪都在实体内(并且在XML中作为紧凑的自定义元素进行序列化)。

免责声明:我是llblgen pro的首席开发者。

票数 7
EN

Stack Overflow用户

发布于 2009-01-08 04:05:21

这取决于你所说的“SOA”是什么意思。在服务契约中公开领域对象很少是好的服务设计--它公开了内部实现细节,对已发布的契约进行更改的可能性更大,而且版本控制变得非常困难。

如果您为您的服务端点创建自定义消息文档(例如WCF ),则使用DataContracts实现服务相对容易。通常,您将从数据库重新加载域对象并映射更改的属性(或调用方法),然后持久化更改。

如果您的服务主要是CRUD方法,那么您的自定义消息实际上就是DTO。您将需要手动管理开放式并发和域对象映射。

更新:这是一个旧的答案,所以我想指出EF4现在也是includes change tracking in entities。我仍然认为这是一个糟糕的服务契约设计,但如果您只是想要一个分布式应用程序框架,这可能是一个不错的选择。

票数 4
EN

Stack Overflow用户

发布于 2009-07-03 20:36:41

看一下DataObjects.Net中对upcoming synchronization and disconnected sets的描述

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/412660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档