这是第一次在这里问,所以请帮我传达一下我的意思。
首先我使用了一个实体框架,我想创建一个从3个表中检索数据的查询,然后将结果绑定到列表视图,这里的问题是页面上没有任何内容。这就是我所做的:
ITIEntities MyContext = new ITIEntities();
var Courses = MyContext.Courses;
var Instructors = MyContext.Instructors;
var Ins_Courses = MyContext.Ins_Course;
var Query= from Crs in Courses
from Ints in Instructors
from Instructor_courses in Ins_Courses
where Crs.Crs_Id==Instructor_courses.Crs_Id
&& Instructor_courses.Ins_Id== Ints.Ins_Id
select new
{
Name= Ints.Ins_Name,
Salary=Ints.Salary,
ListOfCourses=Crs.Crs_Name,
};
MyListView.DataSource = Query;
MyListView.DataBind();
MyContext.SaveChanges();
答案 0 :(得分:1)
这里的问题是可枚举的类型变量查询所以如果你想将结果绑定到listview,你必须为你想要显示的每一列定义具有getter和setter属性的实体公共类。
public Class ClassNameEntity
{
public string Name {get; set;}
}
在linq查询中使用以下
select new ClassNameEntity
{
Name= Ints.Ins_Name
}.ToList();
将返回您定义的类对象列表的列表,以便直接绑定上层查询的结果。
ITIEntities MyContext = new ITIEntities();
var Courses = MyContext.Courses;
var Instructors = MyContext.Instructors;
var Ins_Courses = MyContext.Ins_Course;
List<ClassNameEntity> Query= from Crs in Courses
from Ints in Instructors
from Instructor_courses in Ins_Courses
where Crs.Crs_Id==Instructor_courses.Crs_Id
&& Instructor_courses.Ins_Id== Ints.Ins_Id
select new ClassNameEntity
{
Name= Ints.Ins_Name,
Salary=Ints.Salary,
ListOfCourses=Crs.Crs_Name,
}.ToList();
MyListView.DataSource = Query;
MyListView.DataBind();
MyContext.SaveChanges();