我似乎在将相关数据传递到我的视图时遇到问题。我正在创建一个简单的博客,它具有三个表的数据库架构。这些是用户、帖子和评论。对于我的用户配置文件页面,我希望将这些表中的所有数据传递到用户配置文件视图中。我使用 Linq to SQl 来创建我的数据库模型。这是我使用 Linq 传递数据的尝试:
public ActionResult NewProfile()
{
var users = from u in db.UserModels
join p in db.PostModels on u.UserId equals p.UserId
where u.UserId == WebSecurity.CurrentUserId
select new Profile { UserModel = u, PostModel = p };
return View(users);
}
这是接收视图中的代码:
@model IEnumerable<MvcBlog.Models.Profile>
@{
ViewBag.Title = "NewProfile";
}
<h2>NewProfile</h2>
@foreach (var item in Model)
{
@item.UserModel.Username
}
在我告诉你结果是什么之前,我认为让你了解我的数据库中的数据很重要。目前,我只有三个用户。这些用户中只有一个 (gb201) 创建了任何博客文章。用户 gb201 一共创建了两篇博文。
当我运行程序并以用户 gb201 登录时,NewProfile 页面上显示的数据是:
New Profile
gb201
gb201
该视图正在从两个表中传递数据,但是,当我希望查询用户表时,它会根据该用户的帖子数复制数据。因此,如果用户只有一篇文章,那么它只会显示一次。对于其他两个没有发布任何内容的用户,此页面上没有显示任何信息。
我假设我查询数据库的 linq 代码是错误的,但是,我似乎想不出我做错了什么。抱歉,问题很长,任何帮助将不胜感激。