Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.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.NET实体框架-使用多个包含访问数据_C#_Asp.net_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# ASP.NET实体框架-使用多个包含访问数据

C# ASP.NET实体框架-使用多个包含访问数据,c#,asp.net,asp.net-mvc,entity-framework,C#,Asp.net,Asp.net Mvc,Entity Framework,我有以下表格: CREATE TABLE Application ( Student VARCHAR(40), CrsId INTEGER, DateOfApplication DATE NOT NULL, CONSTRAINT StudentApplies FOREIGN KEY (Student) REFERENCES EducationUser (UsrName), CONSTRAINT CourseExists

我有以下表格:

CREATE TABLE Application (
    Student VARCHAR(40),
    CrsId INTEGER,
    DateOfApplication DATE NOT NULL,
    CONSTRAINT StudentApplies
        FOREIGN KEY (Student) 
        REFERENCES EducationUser (UsrName),
    CONSTRAINT CourseExists 
        FOREIGN KEY (CrsId) 
        REFERENCES Course (Id),
    PRIMARY KEY (Student, CrsId, DateOfApplication)
);

CREATE TABLE EducationUser (
    UsrName VARCHAR(40) PRIMARY KEY,
...
);

CREATE TABLE Course (
    Id INTEGER PRIMARY KEY IDENTITY(1,1),
...
    CONSTRAINT crsInProgram 
        FOREIGN KEY (CrsProgId) 
        REFERENCES Program (Id),
    CONSTRAINT teacherInUser
        FOREIGN KEY (Teacher)
        REFERENCES EducationUser (UsrName)
);
我想列出所有课程,并获取相关的
教育用户
应用程序
数据,然后列出用户订阅的所有课程(以及其他一些可以正常工作的内容)

为此,我创建了

public IEnumerable<Course> Courses
{
    get
    {
        return _entities.Course.Include("EducationUser").Include("Application");
    }
}

但是,我似乎无法访问
模型[I].Application.Student
。我错过了什么?显然,
i集合不包含学生的定义
。很抱歉,如果是noob的话,我只是想了解一下

异常消息
i集合不包含学生定义
告诉您,您的
课程
实体在您的类中有应用程序集合,这样访问
应用程序
是不正确的:
模型[i]。应用程序

您必须按如下方式更改当前代码:

@foreach(var course in Model) {
    if(course.Application.Any(a => a.Student == ViewBag.CurrentGuestName) {
        //display it        
    }
}

我想你必须用
foreach(模型中的var课程){if(course.Application.Student==ViewBag.CurrentGuestName){//display it}}
替换你的
for
循环,这似乎没有帮助。我可能错了,但是你的
课程
实体应该有
ICollection
,因为你有很多关于一门课程的应用程序,不是吗?我需要
公共IEnumerable课程
就像在其他用途中一样(当用户未登录时),我只列出所有课程。如果用户登录,我只想将课程筛选为用户订阅的课程。您的
型号是什么类型的
@foreach(var course in Model) {
    if(course.Application.Any(a => a.Student == ViewBag.CurrentGuestName) {
        //display it        
    }
}