将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博客此处的详细信息和MSDN博客这里(后者讨论了多对多关系,但它涵盖了DatServiceKey属性)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top