【发布时间】:2011-06-25 08:52:47
【问题描述】:
谷歌日!
谁能告诉如何包含子实体?
我有论坛项目。该页面,当我需要显示主题的所有帖子时,每个帖子都有帖子信息,用户信息,但是当时我需要有用户组和用户角色的信息。 (我不能附图片(信誉低),所以我尝试用文字来描述表格)
Post: id, Title, Text, UserId // Post.UserId = User.IdUser: id, Name, RoleId, GroupId // User.RoleId = RefRole.Id and User.GroupId = RefGroup.id
RefGroup: id, Name
RefRole: id、名称
如果我只包含用户实体,我会这样做:
public ActionResult ViewTopic (int id)
{
ForumDBE forumDB = new ForumDBE();
var posts = forumDB.Post.Include("User").ToList();
return View(posts);
}
但是我需要做什么,在 var post 我需要有 RoleName(例如管理员、版主、用户)和组名(例如 Good User、Best User、Advicer.. .) 在这样的视图中?
@model IEnumerable<MvcForum.Models.Post>
@foreach (var post in Model)
{
User Name: @post.User.Name
User Group: @post.User.RefGroup.Name
Uset Role: @post.User.RefRole.Name
}
【问题讨论】:
-
你试过了吗.Include("User").Include("User.RefGroup").Include("User.RefRole")。根据记忆,这是可行的,但我不是 100%,所以我会评论而不是回答。
-
在 LINQ-to-SQL 中,例如,一旦您获得了具有
Users表和RefGroups表之间关系的模型,它会自动在User中定义一个名为RefGroup的新属性.但在 EF 中,我无能为力。 -
我花了几天时间寻找答案......非常感谢!有用!!
var posts = forumDB.Post.Include("User").Include("User.RefGroup").Include("User.RefRole").ToList();
标签: c# asp.net-mvc-3 entity-framework-4