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 trial

C# Entity Framework Basics CRUD Operations Deleting an Entity

Error when trying to create a 'stub' course

I'm trying to solve this challenge, but get an error stating: "Repository.cs(64,43): error CS1922: A field or property Treehouse.CodeChallenges.Course' cannot be initialized with a collection object initializer because typeTreehouse.CodeChallenges.Course' does not implement `System.Collections.IEnumerable' interface " I've rewatched the video multiple times, but I can't see what I'm doing wrong. Anyone see what's wrong with my code?

Repository.cs
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;

namespace Treehouse.CodeChallenges
{
    public static class Repository
    {
        public static List<Course> GetCourses()
        {
            using (var context = new Context())
            {
                return context.Courses
                              .OrderBy(c => c.Teacher.LastName)
                              .ThenBy(c => c.Teacher.FirstName)
                              .ToList();
            }
        }

        public static List<Course> GetCoursesByTeacher(string lastName)
        {
            using (var context = new Context())
            {
                return context.Courses
                              .Where(c => c.Teacher.LastName == lastName)
                              .ToList();
            }
        }

        public static Course GetCourse(int id)
        {
            using (var context = new Context())
            {
                return context.Courses
                              .Include(c => c.Teacher)
                              .SingleOrDefault(c => c.Id == id);
            }
        }

        public static void AddCourse(Course course)
        {
            using (var context = new Context())
            {
                context.Courses.Add(course);
                context.SaveChanges();
            }
        }

        public static void UpdateCourse(Course course)
        {
            using (var context = new Context())
            {
                context.Courses.Attach(course);
                context.Entry(course).State = EntityState.Modified;
                context.SaveChanges();
            }
        }

        public static void DeleteCourse(int id)
        {
            using (var context = new Context())
            {
                // Create a "stub" course entity and set its Id property value to the passed in id parameter value
                var course = new Course() { Id == id };
                // Retrieve the course's entry using the context's Entry method and set its state to "Deleted"
                context.Entry(course).State = EntityState.Deleted;
                // Call the context's SaveChanges method to persist the changes to the database
                context.SaveChanges();
            }
        }
    }
}

2 Answers

Steven Parker
Steven Parker
231,269 Points

Where the Id property is being set, the code shows "Id == id".

But == is a comparison operator. What you want here is the assignment operator (just one =).

That was it!