在Linux下运行的PostgreSQL数据库中,如何使用Silverlight访问?

4

我知道我们不能直接使用Silverlight访问数据库。Silverlight没有Linq 2 SQL,但是我可以使用其他东西吗?我也听说过RIA服务和ADO.net,但我不认为它们适用于Linux服务器。

谢谢您未来的回答。

2个回答

1
如果您可以创建一个REST或SOAP Web服务来公开数据库中的数据,那么Silverlight可以使用其网络堆栈访问该服务。

但问题是在Linux上生成数据库模型。我不会在每次修改数据库时都修改我的模型。 - user301089
你应该在服务器上构建一个应用程序模型,将数据库更改与Silverlight的服务接口隔离开来。为什么不尝试使用IIS服务器代替Linux - RIA服务可以自动化大部分过程? - Michael S. Scherotter

0

你需要将几个东西放在一起。

首先,如果你想创建一个模型,那么你需要寻找一个适用于Postgresql的ORM,可能有几个选择,我偶然发现了Storm,但可能还有其他的。

然后,你需要使用SOAP来暴露这个模型,同样有几种可以使用的SOAP实现。(事实上,在这一点上,我会调整你的标签以更好地针对这个问题,这不是关于Linq-To-SQL、C#或ado.net的问题)。


@user301089:请参考http://stackoverflow.com/questions/289583/best-object-relation-mapping-framework-to-use-with-net-and-mono。 - AnthonyWJones
我已经阅读了NHibernate的示例。问题是,当我修改数据库时,我需要更改实现NHibernate的类。我看到Mono支持ADO.NET 2.0,但我找不到任何相关示例。 - user301089
@user301089:无论是否支持ADO.NET 2.0都不是问题,您的问题是创建一个客户端模型,可以在Silverlight中与之交互并连接到服务器。目前还没有现成的完整解决方案。您需要自己构建它,粘合剂可能是SOAP。如果您可以使用SOAP公开由ORM定义的任何类,则有机会创建客户端SOAP终结点,可以在Sliverlight中使用。但这并不会很顺利。 - AnthonyWJones
我不明白为什么模型在客户端?我以为它会在靠近数据库的服务器端。将模型放在服务器端不是更好吗? - user301089
@user301089: 你的问题内容导致了这种假设,你可以只将模型保留在服务器上,或者干脆不使用模型或ORM。解决这个问题有许多方法。如果你愿意,你可以使用WebClient从一个查询你的PostgreSQL的PHP页面获取一些XML或JSON数据。 - AnthonyWJones
我目前的解决方案是使用ASP.Net的Web服务。在服务器端,我使用数据提供程序NPGSQL来访问数据库,但我手动编写了模型类,并将我的SQL查询结果放入此类中。我只需要一个解决方案来用一个抽象层替换我手写的类,所以我考虑了ADO.NET或LINQ TO SQL。 - user301089

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接