私は非常に単純なEF(CodeFirst)構造をMVC4アプリケーションに持っています。私のコントローラでコントローラの出力とビューのプロパティの間のMVCの不一致
私はこの単純なクエリがあります。
var activity = db.Activities.Where(a => a.Engagement.Id == Id);
マイビューは問題なく、このクエリの結果を処理することができます。
ただし、クエリを作成するときに、テーブルを自分のアクティビティテーブルに追加する必要があります。このクエリは私のために働きます:
var activity = from a in db.Activities
join m in db.Members on a.MemberID equals m.Id
where a.Engagement.Id == Id
select new
{
a.Description,
a.ActivityDate,
a.EngagementStageValue,
a.Hours,
m.Email,
};
問題は、ビューがクエリの結果を解釈できないことです。私はこのエラーを取得する:辞書に渡さ
「モデルアイテムは型である「System.Data.Entity.Infrastructure.DbQuery 1[<>f__AnonymousType1
5 [可能System.String、System.DateTimeで、可能System.Int32、可能System.Int32を、 System.String]] 'この辞書には、' System.Collections.Generic.IEnumerable`1 [DomainClasses.Activity] 'という型のモデル項目が必要です。
私はMVCとEF(厄介な学習曲線)に比較的新しいので、どんな助けも素晴らしいでしょう。
ありがとうございます!
ありがとう、私はそれを理解しています。回避策はありますか?追加プロパティに対応するためにビューを変更するにはどうすればよいですか? – Chris
通常、追加のフィールドを追加するViewModelを作成します。あなたの場合、それはViewModelsのコレクションであることになります。しかし、おそらくよりスマートな方法があります。 –