J'ai une confusion concernant les modèles lorsque nous avons des relations entre plusieurs tables. Auparavant, j'utilisais des vues ou des procédures stockées de SQL pour manipuler des données mais maintenant j'utilise Entity Framework si confus à quoi mon modèle devrait ressembler? J'ai une table pour Users
, UserImages
, UserRoles
.MVC Model Confusion
UserImages
et UserRoles
fait référence à UserID
de Users
table.Je ne suis pas sûr de la façon dont mon modèle devrait être. Lors de l'affichage de données, j'utilise généralement une vue créée dans le serveur SQL en joignant ces 2 tables. Et quand un utilisateur est édité ou créé, je mets à jour ces 3 tables.
Vous ne savez pas à quoi devrait ressembler mon modèle dans ce cas? Puis-je créer une vue de serveur SQL et l'ajouter à edmx? Ou ajouter 3 tables séparément dans EDMX et créer des propriétés personnalisées dans le modèle utilisateur pour ces 2 autres tables?
[HttpPost] public ActionResult Créer (UserFormViewModel UserView) {
User user = UserView.User;
try {
if (ModelState.IsValid) {
repository.AddUser(user);
repository.Save();
return View(new UserFormViewModel(user));
} else {
return View(new UserFormViewModel(user));
}
} catch (Exception ex) {
ModelState.AddModelError("Error", ex.Message);
return View(new UserFormViewModel(user));
}
}
public class UserFormViewModel {
UucsrRepository repository = new UucsrRepository();
public User User { get; private set; }
public SelectList States { get; private set; }
public SelectList Genders { get; private set; }
public SelectList RolesLists { get; private set; }
public SelectList SelectedRolesLists{ get; private set; }
public UserFormViewModel(User contact) {
User = contact;
States = new SelectList(repository.GetAllStates() ,"ShortName","Name");
Genders = new SelectList(repository.GetAllGenders(), "Gender", "Description");
RolesLists = new SelectList(repository.GetAllRolesLists(), "Id", "Name");
}
}
Je ne sais pas comment dois-je gérer exactement la liste des rôles Ajout et images ici.
Je l'aurais fait de la même manière. Fondamentalement Entity Framework est un ORM et ORM vous permet de gérer votre modèle. Vous avez User, UserIMage et UserRole en tant qu'objets de votre domaine. Votre utilisateur a une relation à plusieurs avec Image et Rôle qui sera contenu par l'objet Utilisateur. HTH. – Pradeep
J'ai ajouté mon code ici juste au cas où vous pourriez jeter un oeil. – Mathew