ASP.Net MVC Where do you convert from Entities to ViewModels?

北战南征 提交于 2021-02-07 03:34:33

问题


Title pretty much explains it all, its the last thing I'm trying to work into our project. We are structured with a Service Library which contains a function like so.

        /// <summary>
        /// Returns a single category based on the specified ID.
        /// </summary>
        public Category GetCategory(int CategoryID)
        {
            var RetVal = _session.Single<Category>(x => x.ID == CategoryID);
            return RetVal;
        }

Now Category is a Entity (We are using Entity Framework) we need to convert that to a CategoryViewModel.

Now, how would people structure this? Would you make sure the service function returned a CategoryViewModel? Have the controller pull the data from the service then call another function to covnert to a view model?


回答1:


Here's an excerpt from a blog post I wrote:

[AutoMap(typeof(IEnumerable<User>), typeof(IEnumerable<UserViewModel>))]
public ActionResult Index()
{
    // return all users
    IEnumerable<User> users = Repository.GetUsers();
    return View(users);
}

In this case the corresponding view is strongly typed to IEnumerable<UserViewModel>. It uses AutoMapper to define conversion rules between entities and view models. As for the [AutoMap] attribute, it's a custom action filter which inspects the model passed to the view and applies the proper conversion so that the view has only the view model.



来源:https://stackoverflow.com/questions/3004653/asp-net-mvc-where-do-you-convert-from-entities-to-viewmodels

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!