Не могу вернуть представление с помощью include () - PullRequest
0 голосов
/ 07 октября 2011

ASP.net MVC3 Razor EF

Когда я делаю это, это работает:

    public ViewResult Index()
    {
        return View(db.Songs.Include("Artist").ToList());
    }

Но это не так:

    public ViewResult Index()
    {
        return View(db.Artists.Include("Song").ToList());
    }

Я получаю эту ошибку:

Указанный путь для включения недействителен.EntityType 'MVCProject.Models.Artist' не объявляет свойство навигации с именем 'Song'.

Есть идеи, почему?если вам нужна дополнительная информация / код, пожалуйста, укажите, какой.но, пожалуйста, дайте мне знать, где что-то подобное может произойти, и как это можно решить.это сводит меня с ума.

Спасибо.

Артисты Класс:

public class Artist
{
    public int ArtistID{ get; set; }
    public string Name { get; set; }
    public IQueryable<Song> Songs{ get; set; }
}

Ответы [ 2 ]

2 голосов
/ 07 октября 2011

Заменить public IQueryable<Song> Songs{ get; set; } на public virtual ICollection<Song> Songs{ get; set; }

public class Artist
{
    public int ArtistID{ get; set; }
    public string Name { get; set; }
    public virtual ICollection<Song> Songs{ get; set; }
}

Тогда

return View(db.Artists.Include("Songs").ToList());
0 голосов
/ 07 октября 2011

Возможно, у вас есть Songs (множественное число) в качестве навигационного свойства для класса Artist.Итак, return View(db.Artists.Include("Songs").ToList()); должно работать.Если не - нужно показать класс модели для Artist

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...