如何编写自己的基于 XmlService 的 ORM?

Posted

技术标签:

【中文标题】如何编写自己的基于 XmlService 的 ORM?【英文标题】:How to write own XmlService-based ORM? 【发布时间】:2010-11-12 08:31:38 【问题描述】:

这是一个问题。某处有一个 Oracle 数据库,但软件开发人员/用户无法访问它。相反,我们可以使用基于 xml 的 webservice,它是程序和数据库之间的链接,所以它是这样的:

1) 我想检索一个表。我有一个 WebMethod 。它返回此表的纯 xml。

2) 我想在表格中添加一行。我有一个 WebMethod 。它接受它需要的参数并返回简单的 xml 来确认操作是否成功。

存储在数据库中的每个实体的完整 SCUD(选择、创建、更新(我的情况 - 只需编辑一个)、删除)接口也是如此。不过那边有关系。

所以我想编写某种包装器来处理整个数据库。想象一下有这样的表格:

Customers
*Id
 Name

Orders
*Id
 CustomerId
 OrderData

我想处理这样的请求:

var order = MYORM.GetOrders().First(); // first order
var customer = MYORM.GetOrders().First().Customer  // first order's customer

var customers  = MyORM.GetCustomers(); // returns customers list

但是! customers.Contains(customer) 必须是 true,甚至请求了 customers,因此在 customer 之后实例化。

另外,所有的创建-删除-编辑操作也需要支持。

这就是 EF 的工作原理,但它的机制似乎过于复杂。有什么想法可以做到吗?

【问题讨论】:

我认为最合适的是创建一个 OData 接口。你可以非常快速地构建它,你可以在它后面使用 EntityFramework,而且它相当容易使用。在这里查看一个很棒的教程:Creating an OData API for *** including XML and JSON in 30 minutes. 【参考方案1】:

从 SQL Server 2005 开始,您可以将数据库公开为托管在 sql server 中的 Web 服务。

【讨论】:

这与我所问的甚至不接近;)

以上是关于如何编写自己的基于 XmlService 的 ORM?的主要内容,如果未能解决你的问题,请参考以下文章

Python 操作Redis

python爬虫入门----- 阿里巴巴供应商爬虫

Python词典设置默认值小技巧

《python学习手册(第4版)》pdf

Django settings.py 的media路径设置

Python中的赋值,浅拷贝和深拷贝的区别