私は自分の問題に対処する方法についてネット全体を検索してきましたが、私は運が全くありませんでした。私はSilverlightビジネスクラスのアプリケーションを開発しており、RIAサービスを利用しようとしています。私は正常に読み込んで、主要な問題なしでエンティティを保存していますが、アプリケーションが最初に読み込まれるときに私が "値リスト"と呼んでいるものをロードする必要があります。Silverlight/RIA Services/EF - カスタムオブジェクト
私の値リストは、Id(キー)とValue'sで構成された独立したエンティティで、おそらく5程度で、コンボボックスやオートコンプリートボックスのようなものを埋め込むために使用されます。私は個々にそれぞれを照会することができますが、1つのクエリですべての値リストを一度にロードして、それぞれのレコードが15レコード未満であるために処理速度を上げます。私はそれらのすべてを返すようにカスタムクラスを開発しようと、それは次のようになります...
<DataContract(IsReference:=True)>
<KnownType(GetType(ValueList1Item))>
<KnownType(GetType(ValueList2Item))>
<KnownType(GetType(ValueList3Item))>
Partial Public Class ValueLists
<DataMember()>
Public Property ValueList1 AS List(Of ValueList1Item)
<DataMember()>
Public Property ValueList2 AS List(Of ValueList2Item)
<DataMember()>
Public Property ValueList3 AS List(Of ValueList3Item)
End Class
そして、私は次のようになりますそのうちの一つのサービスメソッドを実装するためのさまざまな方法を試してみました...
Public Function GetValueLists() As ValueLists
Dim ret As ValueLists = New ValueLists
ret.ValueList1 = (From v1 In ObjectContext.ValueList1Items
Select v1).ToList
ret.ValueList2 = (From v2 In ObjectContext.ValueList1Items
Select v2).ToList
ret.ValueList3 = (From v3 In ObjectContext.ValueList3Items
Select v3).ToList
Return ret
End Function
また、IQueryable(Of ValueLists)を返そうとしました。何を試しても、私のカスタムタイプを使用しようとすると、そのメソッドをクライアントに公開することができません。 RIAサービスでこれを行うことも可能ですか、それとも成熟していませんか?私はこれまでストレートWCFでこれをやったことは分かっていますが、それは明らかに多くの仕事です。事前に
おかげで、 ケーシー
返信いただきありがとうございます。私はチャンスを得るとすぐにそれを試して、それが動作するかどうかを見てみましょう。私はすぐにRIAサービスを投げ捨てることになり、このような問題に苦しんでいけば、通常のWCFの実装に直接進むことができます。私はWCFがより多くの仕事をしていることは知っていますが、確かにはるかに柔軟性があり、いいですね。この時点では、RIA Servicesはかなり高いレベルの複雑さを持つアプリケーションに最適なソリューションではないという印象を受けますが、おそらく私はそれについて間違っています。 – Casey
さて、私はまだこのレオには運がありません。私は実際には、ユーザーがこれらの値リストを編集できる「システム」ページを持つため、エンティティだけを読み込むことは望ましくありません。 – Casey