wcf - 使用Linq-to-SQL的ADO.NET数据服务

标签 wcf linq-to-sql wcf-data-services

将linq-to-sql与ado.net数据服务一起使用时遇到奇怪的错误。我有一个连接到远程数据库的简单Silverlight应用程序。我首先添加了linq-to-sql类,并将表拖到了设计器上。然后,我添加了ADO.NET数据服务,更新了DataService引用以指向L2S数据上下文。

编译没有问题。

在IE中打开服务时,我立即收到错误消息,因此将以下属性添加到数据服务中:

[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)]


这将显示详细的错误消息:


异常消息是“在数据上下文类型为'DataClasses1DataContext'时,存在一个顶部IQueryable属性'table1',其元素类型不是实体类型。确保IQueryable属性是实体类型,或在数据上下文类型上指定IgnoreProperties属性以忽略此属性


我在L2S设计器中使用的任何数据库表都会发生这种情况!

这是什么错误,我为什么会收到它?

最佳答案

您需要使用DataServiceKey属性装饰类。

有关Marc博客here和MSDN博客here的更多详细信息(后者讨论了多对多关系,但涵盖了DatServiceKey属性)。

关于wcf - 使用Linq-to-SQL的ADO.NET数据服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/618027/

相关文章:

wcf - IIS 使用 SSL 证书托管 WCF

wcf - Service 实现多个 ServiceContract 类型然后 Restful Service 抛出 ServiceActivationException

wcf - WCF 中 UriTemplate 中的可选参数

vb.net - 如何在 LINQ 子查询中处理 Null?

c# - 在哪里可以找到有关在真实项目中使用 Entity Framework 的良好分步教程?

jquery - 数据插入成功但jquery仍然返回错误

Java-调用.net wcf web服务Spring

wcf - TLS 是否必须在发送之前加密整个文件?

c# - 如何在条件下使用 RemoveAll 删除列表中的多个项目?

sql-server - Silverlight 应用程序中的压力测试,它使用来自 WCF DataService 的数据,然后公开来自 SQLServer 数据库的数据