C# Entity Framework Basics Extending Our Entity Data Model Defining a Many-to-Many Relationship

Defining A Many to Many Relationship Task 2

I don't understand what I'm doing wrong here. I'm getting the following error:

Course.cs(7,18): error CS1520: Class, struct, or interface method must have a return type Student.cs(7,16): error CS1520: Class, struct, or interface method must have a return type Compilation failed: 2 error(s), 0 warnings

Isn't not having a return type a defining characteristic of the constructor?

Course.cs
using System.Collections.Generic;

namespace Treehouse.CodeChallenges
{
    public class Course
    {
          public Courses()
        {
            Students = new List<Student>();   
        }

        public int Id { get; set; }
        public int TeacherId { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
        public int Length { get; set; }

        public ICollection<Student> Students { get; set; }

        public Teacher Teacher { get; set; }
    }
}
Student.cs
using System.Collections.Generic;

namespace Treehouse.CodeChallenges
{
    public class Student
    {
        public Course()
        {
               Courses = new List<Course>();
        }

        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }

        public ICollection<Course> Courses { get; set; }
    }
}

1 Answer

Fredrik Rönnehag
Fredrik Rönnehag
2,341 Points

In your default construction you didn't use the same name as the class. Therefor the compiler thinks you are creating a new method but you have no return type (example, void).

This code should fix the problem. Remember that constructors are a way of calling the class. Having no input parameters means it will be the default call when you call that class.

          public Course()
        {
            Students = new List<Student>();   
        }
          public Student()
        {
            Courses = new List<Course>();   
        }