ASP.NET MVCプロジェクトで使用するコードファーストEF用のPOCOクラスを作成しています。私はthis answerに基づいてフィールドのいずれかのドロップダウンリストを作成しようとしていますが、移行を追加しようとするとEFがエラーになりました。EntityFrameworkはSystem.Web.Mvc.SelectListに満足していません
更新: POCOからSelectListItemsを削除しましたが、同じEFエラーです。 POCOの
関連スニペット:
using System.Web.Mvc;
public class Organization
{
[DisplayName("Bank Name")]
[Required(ErrorMessage = "Bank Name is required.")]
public string AccountBank { get; set; }
public IEnumerable<SelectListItem> Banks { get; set; }
}
EFエラー:
Could not load file or assembly 'System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
通常、データベースにはSelectListItemエンティティを格納したくありません。代わりに、Bankエンティティを持ち、SelectListItemsをUIでのみ作成する必要があります。 –
なぜEF POCOにビューロジックを追加していますか? –
'SelectListItem'はUI用です。あなたのデータベースに保存すべきではありませんし、あなたのPOCOにはいけません。データベース(=データモデル=ビジネスモデル)には、ビジネスオブジェクトを格納する必要があります。 UI(ビューおよび/またはコントローラ)は、ビジネスオブジェクトをビューで使用できる形式、つまりselectlistItemsに変換する必要があります。 –