我的表结构如下:
课程表 Course
当用户仅搜索“WORDPRESS”时,应该得到以下结果。
当用户搜索
上述查询返回以下结果。
如何实现上述结果。
课程表 Course
ID CourseName
1 PHP
2 WORDPRESS
主课程
ID MainCourseName
1 FoundationPhp
2 FoundationWordPress
3 Diploma
SubCourse
ID MainCourseID CourseID
1 1 1
2 2 2
3 3 1
3 3 2
我有一个搜索场景,应该可以获取以下结果
当用户仅搜索PHP
时,他应该得到以下结果
MainCourseName CourseCombination
FoundationPHP PHP
Diploma PHP,WORDPRESS
当用户仅搜索“WORDPRESS”时,应该得到以下结果。
MainCourseName CourseCombination
FoundationWordPress WORDPRESS
Diploma PHP,WORDPRESS
当用户搜索
PHP,WORDPRESS
时,应显示以下结果。 MainCourseName CourseCombination
Diploma PHP,WORDPRESS
注意:如果有包含PHP & WORDPRESS
的其他组合,也需要显示。例如这样一个组合:PHP,WORDPRESS,JAVA
。
我尝试了以下方法:
List<int> CourseId={1,2}//means user searches by both PHP & WORDPRESS
var courseList = _db.SubCourses
.AsEnumerable()
.Where(mcd => courseId.Contains(mcd.Course.Id))
.Select(mc => new RegistraionVM.clsCourseCodeSearch
{
CourseCode = mc.MainCourse.MainCourseName,
CourseCombination = string.Join(",", mc.MainCourse.SubCourse
.Select(mcd => mcd.Course.Name))
}).Distinct().Take(5).ToList();
上述查询返回以下结果。
MainCourseName CourseCombination
FoundationPHP PHP
FoundationWordPress WORDPRESS
Diploma PHP,WORDPRESS
期望的结果是
MainCourseName CourseCombination
Diploma PHP,WORDPRESS
如何实现上述结果。
ID
值,而不是名称,因为不清楚你将结果投影到哪个视图模型中 - 例如,如果过滤器是{1,2}
,则结果将是MainCourseName:3,CourseCombination:"1,2"
。一旦您确认此代码返回了您期望的值,我可以修复它以显示名称。 - user3559349CourseCode:“Diploma”,CourseCombination:“PHP,WORDPRESS”
,如果过滤器是{1,2}
。 - user3559349