私はエンティティスペースの初心者で、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 コードを書いていると確信しています。
誰でも私を助けてください......
ありがとう
(注:以前に同じ質問をしましたが、フォーマットされたコードが貧弱なので、きれいなコードでもう一度質問してください)