我有一个 Windows 应用程序和一个 Web 服务。两者都有一个带有 Customer 表的 Linq to SQL 映射器。来自同一个数据库的同一张表,一切都相同。我尝试将 winapp.Customer 对象发送到 Web 服务,但 webserviceReference.MyMethod() 接受 webservice.Customer 对象并且不接受 winapp.Customer 作为参数。尝试将 winapp.Customer 转换为 webservice.Customer 但也不起作用。有办法实现吗?
最佳答案
不,无法使用 ASMX Web 服务来完成此操作。它们要求代理类型和真实类型是不同的类型。
您可以使用 WCF 来完成此任务,尽管它打破了 SOA 的理念(客户端和服务器将通过公共(public)类代码捆绑在一起)。
最后,使用任何类型的 Web 服务将 LINQ 传递到 SQL 或 Entity Framework 类都存在问题。当在层之间传递时,微软会搞乱并序列化依赖于实现的数据。当各层位于同一台计算机上时,这可能有意义,但当它们位于不同的计算机上时,意义就小得多。
关于winforms - 通过 Web 服务发送 Linq to SQL 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1520581/