Silverlight的LINQ-to-SQL相当于什么?

时间:2010-01-28 10:03:52

标签: linq wcf silverlight data-access-layer wcf-ria-services

我有一个 WPF 应用程序,它在本地 .MDF 文件中使用 LINQ-to-SQL 。这个解决方案简单,简单,有效,即我设置了一次模型,然后通过LINQ在任何地方读/写数据:

        using (var db = Datasource.GetContext())
        {
            oldItem = (from i in db.Infos
                       where i.Id == TheId
                       select i).SingleOrDefault();
            CreateForm(db, FormBase, oldItem, Button_Save);
        }

对Silverlight应用程序来说,这简单的等同于什么?

搜索我发现了一系列术语:

  • WCF RIA服务,WCF数据服务(ADO.NET数据服务,Astoria),数据服务工具包
  • .NET RIA服务
  • 的OData(达拉斯)
  • 的GData
  • REST,基于REST,类似REST,受REST启发
  • XML,JSON,RDF + XML
  • Web服务,SOA
  • 基于云的服务,Azure,SQL Azure,Azure服务平台

我想做的就是:

  • 创建 .mdf文件
  • 使用类似LINQ-to-SQL的工具生成支持Web的(REST?)数据层等。
  • ftp .mdf文件和类直到 ASP.NET网络托管服务
  • 使用 LINQ
  • 编写读写此数据源的 silverlight客户端

5 个答案:

答案 0 :(得分:4)

专注于学习RIA数据服务或WCF数据服务。它将Silverlight中的LINQ查询转换为REST请求,并使您免于编写一些基础结构代码。整个想法是您的SL应用程序仅与Web服务通信,您无法访问物理数据库,就像您使用某些ORM(L2S)时一样。在SL中,您在浏览器的沙箱中,这会阻止您访问文件系统,包括db文件 其他方法是编写Web服务并通过它公开数据(GetArticleByID),然后从Silverlight中使用该服务。然后使用LINQ迭代获取的已加载数据。

答案 1 :(得分:3)

这是做什么 -

  1. 使用Visual Studio创建Silverlight应用程序。您将获得两个项目,一个使用Silverlight XAML,另一个是Web应用程序来托管它。

  2. 在Web应用程序中,添加您的DBML(Linq-2-SQL)文件。正常配置

  3. 在Web应用程序中,添加启用Silverlight的WCF服务

  4. 在WCF服务中,定义一些访问L2S数据上下文的方法

  5. 在Silverlight项目中,转到添加服务参考,点击“发现”并在

  6. 中添加WCF服务
  7. 实例化服务,并访问您的方法

  8. 听起来有点复杂,但在实践中非常直接。

答案 2 :(得分:1)

不可能。 Silverlight无法直接访问数据库。中间需要某种Web服务层。我认为WCF和RIA服务使用最广泛。

答案 3 :(得分:1)

我强烈建议您在日程安排中清理一小时,然后观看此视频: - net-ria-services-intro

事实上,明确了2个小时,并与视频一起构建您自己正在构建的应用程序的副本。

答案 4 :(得分:1)

如果要开发常规LOB(业务线)应用程序,则应使用Web服务接口来跟踪数据库。 RIA服务或WCF数据服务是Microsoft当前的RAD(快速应用程序开发)技术,可以使这项任务更容易。

如果您正在谈论您需要的特殊情况:Silverlight 4在浏览器用完时可以与Windows上的COM服务器通信。这篇庞大的博客文章描述了与数据库的对话:Cutting Edge Silverlight 4 Com Features

如果您正在寻找一种操作类似数据库的文件的方法,您可以查看csharp-sqlite项目。我认为它编译Silverlight 没有多少ado (快速和脏的概念证明在这里:Proof of Concept csharp-sqlite in Silverlight)。有了它,您可以在常规Silverlight应用程序中的用户隔离文件存储中创建和操作数据库文件,然后将其上传到您想要的任何位置。