Wpf 如何从LINQ到SQL再到;LINQ到WCF”吗;?

Wpf 如何从LINQ到SQL再到;LINQ到WCF”吗;?,wpf,linq,wcf,linq-to-sql,Wpf,Linq,Wcf,Linq To Sql,我正在组装一个WPF应用程序,它最终将使用WCFWeb服务作为其数据源 在原型开发阶段,我在SQL 2008数据库上使用LINQ to SQL,并逐渐意识到我可以轻松地“添加新项| LINQ to SQL类”并为表生成模型类,然后使用LINQ与它对话并将其传递给我的XAML UI,非常好 但是,当我们将数据源从SQL Server切换到WCF web服务时会发生什么呢?为了继续使用LINQ,我是否必须: 手动编写我自己的LINQ到web服务类(使用IQueryable等?) 有没有这样的代码生

我正在组装一个WPF应用程序,它最终将使用WCFWeb服务作为其数据源

在原型开发阶段,我在SQL 2008数据库上使用LINQ to SQL,并逐渐意识到我可以轻松地“添加新项| LINQ to SQL类”并为表生成模型类,然后使用LINQ与它对话并将其传递给我的XAML UI,非常好

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

  • 手动编写我自己的LINQ到web服务类(使用IQueryable等?)
  • 有没有这样的代码生成工具,比如“linqtowcf”(奇怪的是,这个术语在谷歌中甚至没有出现)
  • 或者我必须低效地从我的web服务中获取大量记录,从中创建对象,然后使用LINQ to对象来查询它们
谢谢你在这里提供的任何指导

补充:感谢您的回答,非常有帮助,但导致了一些混乱:
  • 这表示“添加新项|ADO.NET实体数据服务”
  • 我有VS2008,只需执行“添加新项|ADO.NET实体数据模型”
  • 这意味着使用ADO.NET数据服务模板创建一个新项目,我在VS2008中没有这个模板
  • 所有这些最常用的方法之间的区别是什么
  • 从我到目前为止所读到的内容来看,与“LINQ到实体”相关的任何内容都会带来成本,而“LINQ到SQL”是免费的,那么上面的“实体数据服务/模型”选项是否与LINQ到实体相关呢
    • 你看过了吗。在这里,您可以使用linq语法在线查询数据存储


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

      您可能需要这样做。您必须向您的实体添加一个接口实现,并且您可以使用、实体框架或许多其他工具。我们正在使用,它允许您将此功能添加到LINQ to SQL。

      通用的LINQ to WCF可能没有意义。特别是,WCF调用仅以非常特定的方式公开数据,这并不真正符合LINQ的处理方式。例如,我的服务可以有以下合同:

      List<DAO> GetObjectsInDateRange(DateTime start, DateTime end);
      void ExportObjectsToLegacySystem(List<DAO> data);
      
      也就是说,您当然可以创建一个针对您自己的服务定制的LINQ接口。假设您的服务有一种方法:

      List<DAO> GetObjects(DAOFilter filterObject);
      
      列出GetObjects(DAOFilter filter对象);
      
      如果DAOFilter是一个指定所有“where”条件的对象,那么您可以编写一个LINQ提供程序,将所有表达式转换为这个DAOFilter对象。这将是一个令人难以置信的一次性解决方案,需要大量的工作,因此我建议不要这样做


      我附和了要查看的建议。

      您可以将Linq to SQL类直接添加到WCF项目中,并将Linq to SQL类上的序列化模式设置为单向。如果您这样做,这些类将通过WCF服务显示。

      看起来您需要Visual Studio 2008 SP1来进行这些更改,因为它们需要3.5 SP1。我安装了Visual Studio 2008 SP1,但仍然需要“ADO.NET数据服务”模板。我怎样才能得到它?
      List<DAO> GetObjects(DAOFilter filterObject);