モデルの1つに関連する別のテーブルから取得するデータのリストを格納する必要があります。 (この関係をDBに追加するには、あまりにも深く構築しなければなりません。)このリストを必要とするモデルのプロパティにロードしようとするとき。モデルメンバーを無視するにはEntity Frameworkが必要です
このリストをビューのドロップダウンにロードします。コントローラのモデルにこのリストをロードしようとすると、エラーが発生します。実際の注意点は、ビューのテーブル内の各レコードの一意のドロップダウンリストがあることです。
私たちのクラス:
Public class OurModel
public property ID As Integer
Public property First As Integer
Public property Last As Integer
Public property myList As List(Of SelectListItem)//This is our problem member
End class
コントローラー:
//This ViewModel is what we pass around from page to page to populate the various elements we need that is not tied to a specific model
Public Function LoadList(myViewModel As ViewModel) As Action Result
Using db //our database resource
For i As Integer = 0 to myViewModel.OurModel
//Assume table select statement previously declared and initialized into dbGet
**NOTE: dbGet is retieving data from a different table that is tied to this Model**
dbGet = dbGet.Where(Function(x) x.ID = myViewModel.OurModel.ID)
myViewModel.OurModel.myList = dbGet.ToList().[Select](Function(x) New SelectListItem() With {.Value = x.number, .Text = x.number})//ERROR IS HERE
Next
End Using
End Function
エラー:メソッド 'DB.ModelTable get_Item(Int32)を' メソッドを、認識していない事業体へ
LINQとこのメソッドをストア式に変換することはできません。
UPDATE:問題は、LINQは、私はこのコントローラで以前に行うクエリのDBContextで何かをやろうとしていることであるように思われます。エラーはDB.Employee
ではなく、私が照会しているものであるDB.Position
を参照しています。
これをモデルに入れると、同じエラーが発生します。私は、このモデルをビューモデルに入れることはできないと思います。なぜなら、「インデックス可能」ではないため、モデルリストの特定のインスタンスに関連付けることができないからです。 – ExceptionLimeCat
これをViewModelまたはViewBagに格納しようとすると、同じエラーが発生します。 EFはリストのコンセプトのリストが気に入らない。 – ExceptionLimeCat