首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于关系数据库的MVC模型

基于关系数据库的MVC模型
EN

Stack Overflow用户
提问于 2010-10-26 03:51:27
回答 2查看 1.6K关注 0票数 2

我正在创建这个MVC模型,并试图了解做it.How的最佳方式,当我在下面的代码中有tables.For之间的关系示例时,我已经创建了一个表单视图模型,我正在调用函数来为用户获取图像表中的所有图像。我是否应该保留用户模型的图像属性,并在存储库中的LINQ查询中填充该属性,而不是从模型中调用方法?在LINQ中有没有办法自动填充联系人的所有图像?

代码语言:javascript
运行
复制
public class UserFormViewModel {

    UucsrRepository repository = new UucsrRepository();

    public User User { get; set; }
    public SelectList States { get; private set; }
    public SelectList Genders { get; private set; }
    public List<Images> UserImages { get; set; }

    public UserFormViewModel(User User) {
        User = User;
        UserImages = repository.GetUserImages(User.Id).ToList();
        States = new SelectList(repository.GetAllStates(), "ShortName", "Name");
        Genders = new SelectList(repository.GetAllGenders(), "Gender", "Description");

    }
}

谢谢!

EN

Stack Overflow用户

发布于 2010-10-26 16:14:04

例如,如果你只显示一些用户信息,而不是修改它,你不需要发送用户ID。我会使用smth,如下所示:

代码语言:javascript
运行
复制
public class UserFormViewModel
{
    public string UserName { get; set; }
    public string Email { get; set; }
    ...
    public SelectList States { get; private set; }
    public SelectList Genders { get; private set; }
    public List<Images> UserImages { get; set; }
}

要填充(准备) ViewModel,使用单独的助手方法是相当方便的:

代码语言:javascript
运行
复制
private UserFormViewModel PopulateUserFormViewModel(int userId)
{
    var model = new UserFormViewModel();
    var user = repository.GetUser(userId);

    model.UserName = user.Name;
    model.Email = user.Email;
    ...
    model.UserImages = repository.GetUserImages(userId).ToList();
    ...

    return model;
}

在你的行动中,你调用:

代码语言:javascript
运行
复制
public ActionResult ShowUser(int userId)
{
    // maybe do something else

    var userFormViewModel = PopulateUserFormViewModel(userId);
    return View(userFormViewModel);
}

这只是一种可能的方法,但一般原则非常明确:保持ViewModel简单(只需视图中所需的数据),最好创建一个可重用的方法将域对象转换为ViewModel

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4018279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档