Неудачный запрос Linq для получения данных таблицы составного ключа - PullRequest
0 голосов
/ 09 сентября 2018

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

Это мой запрос в контроллере

 public ActionResult Index()
    {
        var act = (from i in _context.act
                   from j in _context.mvz
                   where i.Id == j.Id
                   select i).ToList();


        var mvz = _context.mvz.ToList();
        var vm = new AAMMViewModel()
        {
            actz = act
            mvz = mvz
        };
        if (vm == null)
        {
            return Content("No items found in database");
        }
        return View(vm);
    }

Это модель просмотра

  public class AAMMViewModel
{
    public List<Actors> actz { get; set; }
    public List<Movies> mvz { get; set; }
    public AAMMViewModel()
    {
        actz = new List<Actors>();
        mvz = new List<Movies>();
    }
}

Это не дает желаемого результата, я знаю, что что-то не так с логикой моего запроса Linq. Пожалуйста, направьте меня, если у кого-то есть опыт в этом отношении.

Ответы [ 2 ]

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

Вы уверены, что идентификаторы актеров и фильмов одинаковы. Если да, сделайте объединение и используйте правильное имя свойства. Вы используете act вместо actz в вашем linq

public class AAMMViewModel
{
    public List<Actors> actz { get; set; }
    public List<Movies> mvz { get; set; }
    public AAMMViewModel()
    {
        actz = new List<Actors>();
        mvz = new List<Movies>();
    }
}

var act = (from i in _context.actz
                   join j in _context.mvz ON i.Id == j.Id
                   select i).ToList();
0 голосов
/ 09 сентября 2018

Вы можете сделать это:

var act = 
    (from i in _context.act
    where i.Id.SelectMany(id => _context.mvz.Contains(id.Id))
    select i).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...