EF 6.0 Отношение ко многим ко многим не работает в codefirst - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть следующая структура в базе данных:

image

Для вышеизложенного у меня есть следующее в моем коде C # для EF 6.0 CodeFirst.

[Table("Person")]
public class User
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public long Id { get; set; }

    [Column("FullName")]
    [MaxLength(200)]
    public string Name { get; set; }

    public virtual ICollection<Task> Tasks { get; set; } = new HashSet<Task>();
}



[Table("Task")]
public class Task
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public long Id { get; set; }

    [Column("FullName")]
    [MaxLength(200)]
    public string Title { get; set; }

    public virtual ICollection<User> Users { get; set; } = new HashSet<User>();
}

Проблема в том, что коллекция вообще не заполняется и всегда возвращается как пустая.например, если я попытаюсь:

userRepository.All.Include(x=>x.Tasks).Where(x=> x.FullName == "John").Select(x=> x.Tasks.Title).ToList();

InnerException = {"Неверное имя объекта 'dbo.PersonTask'."}

В чем проблема с моим кодом?

1 Ответ

0 голосов
/ 24 сентября 2018

В базе данных нет таблицы PersonTask, поэтому в базе данных не найдено ни одного объекта.Вы должны создать таблицу сопоставления.

...