5

オブジェクトのコレクションをRIAデータサービスクエリに渡すことは可能ですか?Entity、Int、またはプリミティブ型の配列を送信するのに問題はありませんが、このようなメソッドを宣言するとすぐに

public void GetLessonsConflicts(Lesson[] lessons)
{
}

コンパイルエラーが発生します

「「GetLessonsConflicts」という名前の操作が必要な署名に準拠していません。パラメータタイプは、エンティティタイプまたは事前定義されたシリアル化可能なタイプの1つである必要があります。」

データを保存する前に、サーバー側で検証を行おうとしています。List、IEnumerableなどを試しました。

ありがとう

4

1 に答える 1

5

問題は、実際には戻り値がないことだと思います。私が理解しているように、DomainOperationsは規則または属性によって識別できます。属性を表示していないため、RIAは慣例により属性を一致させようとします。

たとえば、慣例により、挿入メソッドは次のことを行う必要があります。

  • メソッド名のプレフィックスとしてInsert、Add、またはCreateがあります(例:InsertEmployee)
  • 署名publicvoidname(Entity e);と一致します。

クエリメソッドは次のことを行う必要があります。

  • 公開する
  • IEnumerable、IQueryable、またはT(Tはエンティティ)を返します。

カスタムドメイン操作は

  • 公開する
  • voidを返す
  • 最初のパラメータとしてエンティティがあります。

編集:以下のラミAのコメントを参照してください。当時はこれが真実だったと思いますが、私は現在このテクノロジーを使用していないため、間違っている可能性があることに注意する以外に、この回答を更新するのに十分な最新情報を持っていません。

または、[挿入]、[削除]、[更新]、[クエリ]、[カスタム]などの属性を使用できます。私のドキュメントから、すべての属性は命名規則の要件を削除するだけです-私には、[クエリ]属性と[カスタム]属性が何を達成するかは明確ではありません。

DomainOperationsと同様に、ServiceOperations([ServiceOperation]属性を使用)とInvokeOperationsを定義できます。

この記事は役立つかもしれません(私はそれが少し時代遅れだと思いますが)。

于 2010-02-09T17:29:33.913 に答える