2009-03-06 17 views
18

linq-to-sqlとado.netデータサービスを使用すると、奇妙なエラーが発生します。私はリモートデータベースに接続するシンプルなSilverlightアプリケーションを持っています。最初にlinq-to-sqlクラスを追加し、デザイナーにテーブルをドラッグしました。次に、ADO.NET Data Serviceを追加し、DataService参照をL2S Dataコンテキストを指すように更新しました。Linq-to-SQLを使用するADO.NETデータサービス

問題なくコンパイルされます。

私はIEでサービスを開くと、私はデータサービスに次の属性を追加しますので、私はすぐにエラーが発生します。

例外:これは、詳細なエラーメッセージが表示されます

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

メッセージは 'データコンテキストタイプ' DataClasses1DataContext 'に要素タイプがエンティティタイプではないトップIQueryableプロパティ' table1 'があります。 IQueryableプロパティがエンティティタイプであることを確認するか、データコンテキストタイプのIgnoreProperties属性を指定してこのプロパティを無視してください。

これはL2Sデザイナで使用するデータベーステーブルで発生します。

このエラーは何ですか?なぜ私はそれを取得していますか?

+0

エンドポイントにはそれぞれhttp:// localhost/{ServiceName}/{EndPointName} – jdiaz

答えて

21

クラスをDataServiceKey属性で修飾する必要があります。

MarcのブログhereとMSDNのブログhere(後者は多対多の関係について語っていますが、DatServiceKey属性について説明しています)の詳細。

+0

によって多くのことが説明されていますが、XML形式のエンティティが表示されないのはなぜですか?それは単にDEFAULT table1と言います。私はさらに、config.SetEntitySetAccessRule( "table1"、EntitySetRights.All)を使用しました。 – jdiaz

+0

また、テーブルにプライマリキーが設定されていない場合、どのプロパティをDataServiceKeyとして設定するかをどのように知っていますか? – jdiaz

関連する問題