Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialEric Lepage
1,602 PointsAnyone has the solution for Entity Framework Basic challenge Repository.GetCoursesByTeacher()
I can not get to write the appropriate code to get the answer right
Steven Parker
231,275 PointsThe other issue might not be the same as yours. Please show your code so we can take a look.
Eric Lepage
1,602 PointsHello Steven, thanks for the quick reply!
My code: var Courses = context.Courses .Include(cb => Teacher) .Where(cb.Teacher.LastName == lastName) .ToList();
Will give me these errors:
Repository.cs(22,40): error CS0118: Treehouse.CodeChallenges.Teacher' is a
type' but a variable' was expected
Repository.cs(22,40): error CS0119: Expression denotes a
type', where a variable',
value' or method group' was expected
Repository.cs(22,34): error CS1660: Cannot convert
lambda expression' to non-delegate type `string'
Compilation failed: 3 error(s), 0 warnings
The last example in James Churchill ends with using this code: var comicBooks = context.ComicBooks .Include(cb => cb.Series) .Where(cb => cb.IssueNumber == 1 || cb.Series.Title == "The Amazing Spider-Man") .ToList();
When I look at the ComicBook and Series class, they seem similar in their relation as the Course and Teacher classes.
I know I can solve the problem using this code that I found in another thread: var Courses = context.Courses .Where(cb => cb.Teacher.LastName == lastName) .ToList(); return Courses;
But I would really like an explanation on why I get the errors if I use .Include since it seems similar to the example in the video.
2 Answers
Steven Parker
231,275 PointsYou don't need .Include
for this challenge, but using it isn't the issue, it's the lambda syntax. You're missing parts of it in both the .Include
and the .Where
calls:
var Courses = context.Courses.Include(cb => cb.Teacher)
// ^^^ missing part
.Where(cb => cb.Teacher.LastName == lastName).ToList();
// ^^^^^ missing part
Eric Lepage
1,602 PointsThanks Steven! I was missing out a very important detail!
Eric Lepage
1,602 PointsEric Lepage
1,602 Pointsoops, just saw this post which seems to be covering the same problem I'm having, although after a first read, I don't get the answer...
https://teamtreehouse.com/community/linq-query-syntax-where-and-include