1

ここで質問するのは初めてなので、私の言いたいことを教えてください。

最初にエンティティ フレームワークを使用し、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();
4

1 に答える 1

1

ここで問題は列挙型変数クエリであるため、結果をリストビューにバインドする場合は、表示する列ごとに getter および setter プロパティを使用してエンティティ public クラスを定義する必要があります。

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();
于 2012-08-12T19:05:23.540 に答える