我的表结构如下滤波中的LINQ在MVC4
场
ID CourseName
1 PHP
2 WORDPRESS
MainCourse
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
时,他应该得到以下结果LT。
MainCourseName CourseCombination
Diploma PHP,WORDPRESS
注:如果是同时包含PHP & WORDPRESS
应显示为一个这样的组合的well.Example会像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
我怎样才能acheive上述结果
这个答案,因为它只会返回'ID'值,而不是名称,因为它不清楚你投影结果的视图模型是什么 - 例如,如果过滤器是“{1,2}”,那么结果将是“MainCourseName:3,CourseCombination:”1,2“”。我可以修复它显示名称,一旦你的快乐,这将返回您所期望的值。 –
Yeaaah ......得到了答案正确的队友。如果可能请修复它显示名称.. – ksg
已更新答案。如果我已经正确地解释了你的模型,现在应该给你'CourseCode:“文凭”,CourseCombination:“PHP,WORDPRESS”'如果过滤器是'{1,2}' –