Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用实体框架在ASP.NETMVC3中包含子实体_C#_Asp.net Mvc 3_Entity Framework 4 - Fatal编程技术网

C# 如何使用实体框架在ASP.NETMVC3中包含子实体

C# 如何使用实体框架在ASP.NETMVC3中包含子实体,c#,asp.net-mvc-3,entity-framework-4,C#,Asp.net Mvc 3,Entity Framework 4,好极了 有人能告诉我们如何包含子实体吗? 我有论坛项目。页面上,当我需要显示所有主题的帖子时,每个帖子都有帖子信息、用户信息,但是,当时我需要有用户组和用户角色的信息。(我无法附上图片(声誉低下),所以我尝试用文字描述表格) Post:id,Title,Text,UserId//Post.UserId=User.id 用户:id,Name,RoleId,GroupId//User.RoleId=RefRole.id和User.GroupId=RefGroup.id RefGroup:id,Nam

好极了
有人能告诉我们如何包含子实体吗? 我有论坛项目。页面上,当我需要显示所有主题的帖子时,每个帖子都有帖子信息、用户信息,但是,当时我需要有用户组和用户角色的信息。(我无法附上图片(声誉低下),所以我尝试用文字描述表格)
Post:id,Title,Text,UserId//Post.UserId=User.id
用户:id,Name,RoleId,GroupId//User.RoleId=RefRole.id和User.GroupId=RefGroup.id
RefGroup:id,Name
RefRole:id,Name

如果我只包括用户实体,我会这样做:

    public ActionResult ViewTopic (int id)
    {
        ForumDBE forumDB = new ForumDBE();
        var posts = forumDB.Post.Include("User").ToList();
        return View(posts);
    }
但我需要做什么,当我在var post时,我需要像这样查看RoleName(例如管理员、版主、用户)和组名(例如好用户、最佳用户、顾问…)

@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
}
@model IEnumerable
@foreach(模型中的var post)
{
用户名:@post.User.Name
用户组:@post.User.RefGroup.Name
使用角色:@post.User.RefRole.Name
}

在Entity Framework 4默认配置中,您不必使用
包含

public ActionResult ViewTopic (int id)
    {
        ForumDBE forumDB = new ForumDBE();
        var posts = forumDB.Post; // or you can use .ToList() but I prefer to use IQueryable
        return View(posts);
    }
然后

@model IQueryable
@foreach(模型中的var post)
{
用户名:@post.User.Name
用户组:@post.User.RefGroup.Name
使用角色:@post.User.RefRole.Name
}

它将使用延迟加载,因为您在Entity Framework 4默认配置中使用的是
IQueryable
,而不是
IEnumerable
,您不必使用
Include

public ActionResult ViewTopic (int id)
    {
        ForumDBE forumDB = new ForumDBE();
        var posts = forumDB.Post; // or you can use .ToList() but I prefer to use IQueryable
        return View(posts);
    }
然后

@model IQueryable
@foreach(模型中的var post)
{
用户名:@post.User.Name
用户组:@post.User.RefGroup.Name
使用角色:@post.User.RefRole.Name
}

它将使用延迟加载,因为您使用的是
IQueryable
,而不是
IEnumerable

您是否尝试过。包括(“用户”)。包括(“用户.参照组”)。包括(“用户.参照组”)。包括(“用户.参照组”)。从内存来看,这是可行的,但我不是100%,所以我将进行注释而不是回答。在LINQ to SQL中,一旦您获得了具有
Users
table和
RefGroups
table之间关系的模型,例如,它会自动在
User
中定义一个名为
RefGroups
的新属性。但在EF,我无能为力。我花了几天时间寻找答案。。。非常感谢!它起作用了
var posts=forumDB.Post.Include(“User”).Include(“User.RefGroup”).Include(“User.RefRole”).ToList()是否尝试过.Include(“用户”).Include(“User.RefGroup”).Include(“User.RefRole”)。从内存来看,这是可行的,但我不是100%,所以我将进行注释而不是回答。在LINQ to SQL中,一旦您获得了具有
Users
table和
RefGroups
table之间关系的模型,例如,它会自动在
User
中定义一个名为
RefGroups
的新属性。但在EF,我无能为力。我花了几天时间寻找答案。。。非常感谢!它起作用了
var posts=forumDB.Post.Include(“User”).Include(“User.RefGroup”).Include(“User.RefRole”).ToList()它工作
var posts=forumDB.Post.ToList()太。。。谢谢大家的帮助!!!谢谢它可以工作
var posts=forumDB.Post.ToList()太。。。谢谢大家的帮助!!!谢谢