如何从LINQ迁移到SQL到"LINQ to WCF"?

Edw*_*uay 7 linq wpf wcf linq-to-sql

我正在整理一个WPF应用程序,该应用程序最终将使用WCF Web服务作为其数据源.

在原型设计阶段,我在SQL 2008数据库上使用LINQ to SQL,并开始欣赏我可以轻松地"添加新项| LINQ to SQL Classes"并为表生成模型类,然后说话使用LINQ将它传递给我的XAML UI,非常好.

但是当我们将数据源从SQL Server切换到WCF Web服务时会发生什么?为了继续使用LINQ,我将不得不:

  • 手动编写我自己的LINQ-to-web-service类(使用IQueryable等?)
  • 有没有一个代码生成工具,这样做,像"LINQ-to-WCF"(奇怪,这个术语甚至没有出现在谷歌)
  • 或者我是否必须从我的Web服务中低效地获取大量记录,从中创建对象,然后到LINQ到对象来查询它们?

感谢您在这里给出的任何方向.

补充:感谢答案,非常有帮助,但导致一些混乱:

  • 这个MSDN教程说"添加新项| ADO.NET实体数据服务 "
  • 我有VS2008,可以做"添加新项目| ADO.NET实体数据模型 "
  • 这个MSDN视频说用ADO.NET数据服务模板创建一个新项目,我在VS2008中没有这个模板
  • 所有这些最常用的是什么?
  • 从我到目前为止所读到的与"LINQ to Entities"有关的任何内容都需要成本,而"LINQ to SQL"是免费的,那么上面的"实体数据服务/模型"选项与LINQ to Entities有关吗?

小智 5

您可能想要ADO.NET数据服务.您必须向实体添加IUpdatable接口实现,并且可以使用LINQ to SQL,Entity Framework,SubSonic或其他许多实现.我们正在使用CodeSmith PLINQO模板,它允许您将此功能添加到LINQ to SQL.


Ray*_*sen 2

您是否了解过ADO.NET 数据服务。在这里,您可以使用 linq 语法通过线路查询数据存储。

您将保留 LINQ to SQL 数据上下文,但将其公开给 Web,并允许您的客户端在标准 LINQ 语句中查询上下文。显然,您必须保护数据服务,以便只有授权的客户端才能连接,但基本上只需最少的工作,您就可以获取数据上下文“客户端”。