|
> ※SliverLightでLinqを試そうと、以下のチュートリアル2(データバインディング)をVBで試そうとしたところ、本件でエラーとなりました。
ん? そのチュートリアルの中には、 GetUserMst() だとか From a In db.UserMst Select a.ID, a.Name だとか見当たらないようですが?
> --------- エラーメッセージ --------------- > 'System.Collections.Generic.List(Of <匿名型>)' の値を 'System.Collections.Generic.List(Of SilverlightApplication1.Web.UserMst)' に変換できません。
どこでそのエラーになってます?
> Return qr.ToList
ここ↑ですか? ( だと思う。 もっと言うと、 ToList() は成功していて、 Return するところでは? )
> Dim qr = From a In db.UserMst > Select a.ID, a.Name
Select してますから… qr は、 UserMst 型の持っているプロパティ ID と Name だけを取り出して、 それらから新しいオブジェクトを作ったもの (匿名型) の集合 (みたいなもの) ですからね。
それを ToList() したものは、 プロパティ ID と Name だけを持っている匿名型のオブジェクトの List ですから、 メソッドの返値として宣言してある型 As List(Of UserMst) とは違うので、 エラーになりますね。
対処は、 クエリ式を変えるか、 プロパティ ID と Name だけを持っている型を定義して使うか、 型が合うようにデータを詰め替えるか (でも、それは意味が無いと思う) の、 いずれかでしょう。
|