将ORM与外部只读系统配合使用

时间:2014-01-16 00:54:14

标签: orm

ORM在访问只读外部系统时如何工作? 比如说我正在创建一个订购系统,它有自己的数据库,可以通过我的应用程序的ORM层访问。该系统的一部分是通过SQL调用(没有可用的Web服务)检查外部系统,例如手头的产品/库存。

系统的这一部分是否有可能使用ORM或您自己编写的差异类代码来访问数据和返回对象,例如从ORM返回的对象?我想这样做,较高层不需要知道手头的产品/库存来自一个单独的系统。

赞赏任何输入

1 个答案:

答案 0 :(得分:1)

过去当我不得不处理像你这样的设置时,我在本地数据库(SQL Server)中创建了一个从远程数据库读取数据的视图。然后,我为视图生成了包装器数据对象(实体框架中的实体)。

每次需要远程数据源的数据时,生成的ORM对象将用于访问视图的数据对象,因此调用将通过ORM框架传递,就像任何其他本地调用一样。

远程数据源可以通过OPENDATASOURCE设置为链接服务器,也可以是同一服务器上的不同数据库(这适用于SQL Server)。可能还有其他选项我没想到,其他数据库可能支持不同的设置。

因此远程数据显示为本地 - 就ORM框架而言,数据来自作为框架一部分的数据对象。真正的远程处理发生在数据库视图中。因此,远程数据和本地数据之间的应用程序级别没有差别。这种方法适用于Entity Framework / .NET和我几年前使用的方法,我相当确定其他ORM框架可以使用这种方法(在其他平台上)。