Je suis en train de créer des classes POCO pour l'EF de code à utiliser dans mon projet ASP.NET MVC. J'essaye de faire une liste déroulante pour l'un des champs basés sur this answer, mais EF a jeté une erreur en essayant d'ajouter la migration.EntityFramework n'est pas satisfait de System.Web.Mvc.SelectList
Mise à jour: Suppression de SelectListItems du POCO, mais toujours la même erreur EF.
extrait pertinent de 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 Erreur:
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)
Normalement, vous ne souhaitez pas stocker d'entités SelectListItem dans votre base de données. Au lieu de cela, vous devez avoir une entité Bank et créer SelectListItems uniquement dans l'interface utilisateur. –
Pourquoi est-ce que vous ajoutez la logique de vue dans les EF POCO? –
Un 'SelectListItem' est pour l'interface utilisateur. Il ne devrait pas être stocké dans votre base de données et ne devrait pas être dans votre POCO. Votre base de données (= modèle de données = business model) doit stocker les objets métier. L'interface utilisateur (vue et/ou contrôleur) doit convertir les objets métier en un format pouvant être utilisé par votre vue, c'est-à-dire les éléments de liste de sélection. –