Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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/5/objective-c/23.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# 首先使用实体框架和代码的空AspNetUser_C#_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# 首先使用实体框架和代码的空AspNetUser

C# 首先使用实体框架和代码的空AspNetUser,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我正在学习ASP.NETMVC5,但在实体框架方面遇到了问题。我首先使用现有数据库编写代码,并对数据库结构进行了一些更新,以便我的其他表使用AspNetUser表中的ID作为用户ID。我想我已经正确更新了数据库,因为它现在以Intellisense显示(我以前使用的是自定义用户表),但由于某种原因,当我运行以下命令时,我会得到一个NullReferenceException: public ActionResult About() { ViewBag.Messag

我正在学习ASP.NETMVC5,但在实体框架方面遇到了问题。我首先使用现有数据库编写代码,并对数据库结构进行了一些更新,以便我的其他表使用
AspNetUser
表中的ID作为用户ID。我想我已经正确更新了数据库,因为它现在以Intellisense显示(我以前使用的是自定义用户表),但由于某种原因,当我运行以下命令时,我会得到一个
NullReferenceException

    public ActionResult About()
    {
        ViewBag.Message = "Your application description page.";
        MarkContext x = new MarkContext();
        var y = x.courses.FirstOrDefault();
        foreach(var c in x.courses)
        {
            System.Diagnostics.Debug.WriteLine(c.courseCode + " " + c.courseTitle + " " + c.AspNetUser.Id);
        }
        return View();
    }
在查询的
c.AspNetUser
部分可以找到
null
。如果我已经验证了ID是否正确创建,为什么会为null?我是否可能需要为此使用即时加载,如果需要,在这种情况下如何执行


旁注:这是在默认MVC设置附带的About()页面上,因此除了在
HomeController
中的这个方法和数据库本身之外,我还没有定制任何东西

如图所示,您需要在执行紧急加载后选择数据

然后,您可以选择以下值:

   foreach(var c in x.courses.Include("AspNetUser"))
        {
            System.Diagnostics.Debug.WriteLine(c.courseCode + " " + c.courseTitle + " " + c.AspNetUser.Id);
        }

问题是,不知怎的,在我链接的一个表的字段中插入了一大块尾随空格。虽然SQLServer没有确认这些空间,但这显然会导致实体框架链接这些空间时出现问题。用一个简单的
RTRIM()
从该列的条目中删除尾随空格解决了这个问题。

我这样尝试过:`foreach(x.courses.Include(“AspNetUser”)中的var c){System.Diagnostics.Debug.WriteLine(c.courseCode+“”+c.courseTitle+“”+c.AspNetUser.Id);}`但是对于
c.AspNetUser
,我仍然得到
null