0

私はエンティティスペースの初心者で、SQLクエリをエンティティスペース形式に変換しようとしています

私は3つのテーブルを持っています

Course
Lesson
Attemps 

ビュー「v_Course」もあり、クエリでこのビューを使用しています

以下は私のSQLクエリです:

Select c.*,
   sub.res
FROM  (
  SELECT l.[CourseID],
     Count(l.CourseID) as res
  FROM   [Lesson] l
      INNER JOIN [Attempt] a
      ON (l.[LessonID] = a.[LessonID]
      AND l.[CourseID] IN (SELECT DISTINCT c.[CourseID]
                           FROM   [Course] c
                          )) group by l.CourseID
 ) AS sub  INNER JOIN v_Course c ON c.CourseID=sub.CourseID order by res desc

このクエリは、SQL Query Browser で目的の結果を正常に返します

今、この構文をエンティティ空間で変換したいのですが、以下はコードです

//Query for the join

AttemptQuery aq = new AttemptQuery("a");

//SubQuery of course id
CourseQuery cq = new CourseQuery("c");
cq.es.Distinct = true;
cq.Select(cq.CourseID);

LessonQuery lq = new LessonQuery("l");
lq.Select(lq.CourseID, lq.CourseID.Count().As("res"));
lq.InnerJoin(aq).On(lq.LessonID == aq.LessonID & lq.CourseID.In(cq));

lq.GroupBy(lq.CourseID);
lq.Load();

VCourseCollection vCourseColl = new VCourseCollection();
vCourseColl.Query.SelectAllExcept(vCourseColl.Query.CourseWriterName);
    vCourseColl.Query.Where(vCourseColl.Query.CourseIsDeleted.Equal(false),vCourseColl.Query.CourseIsActive.Equal(true), vCourseColl.Query.ActiveLessonCount.GreaterThan(0), vCourseColl.Query.CourseCategoryID.NotEqual(7));
vCourseColl.Query.OrderBy(vCourseColl.Query.CourseName.Ascending);
vCourseColl.Query.From(lq).As("sub");
vCourseColl.Query.InnerJoin(lq).On(vCourseColl.Query.CourseID==lq.CourseID);
vCourseColl.Query.Load();  

しかし、このページを実行すると、この種のエラーが発生します

SqlException was unhandled by the user code

Ambiguous column name 'CourseID'.

Invalid column name 'CourseCategoryID'.

Ambiguous column name 'CourseID'.

Invalid column name 'CourseName'.

Invalid column name 'CourseDescription'.

Invalid column name 'CourseIsDeleted'.

Invalid column name 'CourseImageID'.

Invalid column name 'CourseKeyWords'.

Invalid column name 'CourseIsActive'.

Invalid column name 'OutstandingIssues'.

Invalid column name 'CourseWriterEmployeeID'.

Invalid column name 'CourseAnimatorEmployeeID'.

Invalid column name 'CourseAnimatorName'.

Invalid column name 'TrainingTime'.

Invalid column name 'CourseCategoryName'.

Invalid column name 'SafetyImageID'.

Invalid column name 'FeedbackRatingAverage'.

Invalid column name 'CourseCategorySortOrder'.

Invalid column name 'TotalLessonCount'.

Invalid column name 'TotalLessonsInProduction'.

Invalid column name 'ActiveLessonCount'.

Invalid column name 'TrainingQuestionsTime'.

Invalid column name 'TrainingLessonsTime'.

エンティティ スペースで wearg コードを書いていると確信しています。

誰でも私を助けてください......

ありがとう

(注:以前に同じ質問をしましたが、フォーマットされたコードが貧弱なので、きれいなコードでもう一度質問してください)

4

1 に答える 1