c# - In repository pattern, should I use database model as my View model or should I create separate ViewModel for that? -
self explanatory, have model map 1:1 db example:
public class user { [key] public int userid { get; set; } public string firstname { get; set; } public string lastname { get; set; } } is there downside if use in view cshtml example :
@model user or should create viewmodel this
public class userviewmodel { [required] public string firstname { get; set; } [required] public string lastname { get; set; } } and bind view
@model userviewmodel
the idea of programming view should not know data comes ... using database model in view breaks sign.
the best use viewmodel, , in future pleased choice example, view might 1:1 database table, imagine designer wants add recent "messages", that's new table call based on user...
with viewmodel can add , edit view , controller, if use 1:1 need create brand new viewmodel... then, views have viewmodels , don't... messy!
to out, can use automapper viewmodels construction, automapper automagically populates destination class data original class.
var userviewmodel = automapper.mapper.map<userviewmodel>(user); keep in mind separate concerns, controller should not know data comes (hence, using repositories) , view should not data manipulation (hence controller).
Comments
Post a Comment