Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向Silverlight公开现有Oracle Business/DBLayer_Silverlight_Oracle - Fatal编程技术网

向Silverlight公开现有Oracle Business/DBLayer

向Silverlight公开现有Oracle Business/DBLayer,silverlight,oracle,Silverlight,Oracle,我们有一个与oracle DB层对话的现有业务层。所有过程都返回一个数据表。由于Silverlight不支持DataTables,我不确定公开业务层的最简单方法是什么 我宁愿不重写业务层。是否有某种方法可以将datatable转换为SilverLight中可用的内容。这样,我就可以在WCF服务中公开SilverLight应用程序所需的业务层中的任何方法 谢谢 John最灵活的方法是在中间层实现web服务,这些服务调用现有的业务方法,然后将它们转换为XML或JSON。一旦完成,几乎任何东西都可以使

我们有一个与oracle DB层对话的现有业务层。所有过程都返回一个数据表。由于Silverlight不支持DataTables,我不确定公开业务层的最简单方法是什么

我宁愿不重写业务层。是否有某种方法可以将datatable转换为SilverLight中可用的内容。这样,我就可以在WCF服务中公开SilverLight应用程序所需的业务层中的任何方法

谢谢


John

最灵活的方法是在中间层实现web服务,这些服务调用现有的业务方法,然后将它们转换为XML或JSON。一旦完成,几乎任何东西都可以使用它们。

数据表并不适合数据传输对象格式,原因正是您提到的,它们正逐步被淘汰,取而代之的是实体框架之类的东西。ADO.NET团队发布了一篇博客,讨论了这个精确的问题

正如其他人提到的,如果您不想更改业务层,一个选项是编写一个中间层,将数据表转换为合理的XML或JSON格式,或者转换为一系列可以序列化为XML或JSON的类


但是您应该研究的另一个是SilverlightDataSet项目hosted,它假定使Silverlight能够使用已序列化为XML的数据集对象。我自己还没有测试过,但听起来很值得研究。

谢谢您的回复。我最终使用了Telerik的数据集,这是我一直在使用的控件。


将来,在构建业务层时,推荐什么作为数据的返回类型。请记住,我们在这里使用Oracle。将它们保留为数据表并具有转换数据表的中间层是否有意义

我的建议是避开数据表。它们是一种特定的MS技术,不能与其他任何东西进行互操作,甚至连MS都几乎不推荐它们。更好的方法是使用普通的旧CLR对象POCO和某种对象关系映射器,如实体框架、NHibernate或其中之一。然后,您可以通过WCF合理地公开这些对象,这允许您控制这些对象如何序列化的各种不同方面,例如SOAP与REST、XML与JSON等。谢谢Ken。我将来会这样做的。当时我需要一个快速的解决方案。