我正在尝试做一些我感觉像是一项小任务的事情,但我想不出一个简单的方法来做到这一点。对于一个简单的任务,我所有这样做的方法都变得非常复杂。
我有这些模型:
public class Blog
{
public int Id { get; set; }
public String Name { get; set; }
public virtual ICollection<Post> Posts { get; set; }
}
public class Post
{
public int Id { get; set; }
public String Name { get; set; }
public int BlogId { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
}
public class Comment
{
public int Id { get; set; }
public String CommentText { get; set; }
public int PostId { get; set; }
public int UserProfileUserId { get; set; }
}
public class UserProfile
{
public int UserId { get; set; }
public string UserName { get; set; }
public String FirstName { get; set; }
public String LastName { get; set; }
}
在添加的评论部分视图中,我想显示发表评论的用户的完整用户名。如果我只是在我的视图和部分视图中使用我的基类,我会得到我需要的一切,除了添加评论的完整用户名。到目前为止,我已经想到了以下方法:
ViewModels - 这将为我的每个类创建一个 ViewModel,然后在我的控制器中手动填充/映射它们。
视图中的代码 - 我有 UserProfileUserId,所以我可以从视图中询问存储库,但这会杀死 MVC 中的 MVC,所以我不想这样做。
实际上将 UserProfileFirstName 和 UserProfileLastName 作为外键添加到 Comment Class - 这感觉就像用视图特定数据填充数据库。它不属于关系数据库。
使用常规 SQL 并查询数据库——仅仅因为我知道 SQL,这可能是一种方法。但话又说回来,我在 MVC 中杀死了 MVC。
我该怎么做?我愚蠢的被忽视的选择在哪里?我搜索了很多但找不到答案,但这可能与我还不知道所有技术术语有关。抱歉,如果之前回答了 1000 次。