18

在将 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 设计器中使用的任何数据库表都会发生这种情况!

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

4

1 回答 1

21

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

有关 Marc 的博客的更多详细信息,这里还有一个 MSDN 博客(后者讨论多对多关系,但它涵盖了 DatServiceKey 属性)。

于 2009-03-06T08:43:13.007 回答