我一直在努力處理關於數據庫視圖的「一對多」關係。如何使用實體框架從數據庫視圖加載相關實體?
進出口使用實體框架和我有這樣的「簡化」模式:
A「場」的實體。 「學生」實體。
課程可以有許多學生。
下面的代碼工作正常:
public class Course
{
public int Id { get; set; }
public virtual List<Student> Students { get; set; }
}
public class Sudent
{
public int CourseId { get; set; }
public virtual Course Course { get; set; }
}
private List<Course> GetCourses()
{
List<Course> courses;
using (var db = context ?? new MyContext())
{
courses = (from course in db.Courses select course)
.Include(l => l.Students)
.ToList();
}
}
這裏是我的MyContext:
public class MyContext : DbContext
{
protected MyContext()
{}
public virtual DbSet<Course> Courses { get; set; }
public virtual DbSet<OpenCourse> OpenCourses { get; set; }
}
我有一個觀點 「OpenCourses」 是獲取所有打開的課程。
public class OpenCourse
{
public int Id { get; set; }
public virtual List<Student> Students { get; set; }
}
private List<OpenCourse> GetOpenCourses()
{
List<Course> courses;
using (var db = context ?? new MyContext())
{
courses = (from course in db.OpenCourses select course)
.Include(l => l.Students)
.ToList();
}
}
當我運行它,我得到以下內部異常:「無效的列名稱OpenCourse_Id'」
我知道我不知何故必須將OpenCourse視圖與許多學生相關聯。 但是如何?
優先考慮我想在我的方法和我的lambda表達式中做到這一點。
該協會通常將數據庫上下文對象內完成。你能發佈'MyContext'的代碼嗎? – cmcquillan
是的。我已經看到了。但我沒有成功。任何想法如何? – Gradde