Я довольно новый с MVC и Entity Framework. Я создал модель, основанную на сущности. Новая модель используется в представлении. С запросом я заполняю модель:Анонимный объект в LinQ со связью/отношениями
public IEnumerable<TimeTableInsertModel> getTimeTableDetails(int? id)
{
using (var db = new EFDbContext())
{
return (from s in db.TimeTables
where s.TimeTableId == id
select new
{
TimeTableId = s.TimeTableId,
MovieId = s.MovieId,
RoomId = s.RoomId,
SeatsAvaible = s.SeatsAvaible,
StartTime = s.StartTime,
EndTime = s.EndTime,
Movie = s.Movie,
Reservations = s.Reservations,
Room = s.Room,
TicketQuantity = 0,
}).ToList().Select(x => new TimeTableInsertModel
{
TimeTableId = x.TimeTableId,
MovieId = x.MovieId,
RoomId = x.RoomId,
SeatsAvaible = x.SeatsAvaible,
StartTime = x.StartTime,
EndTime = x.EndTime,
Movie = x.Movie,
Reservations = x.Reservations,
Room = x.Room,
});
}
}
Это работает отлично. Но: Таблица «Фильм» имеет 2 отношения с «Жанр» и «Язык». Эти 2 таблицы не заполнены в модели. И я не знаю, как это сделать. меня пытаются сделать это таким образом:
Language = s.Movie.Language,
Reservations = s.Reservations,
Genre = x.Movie.Genre,
Language = x.Movie.Language,
Но Visual Studio говорит модель не содержит определение для «Жанр» и «Язык».
Может ли кто-нибудь помочь? Оригинальная модель «TimeTableModel» имеет следующее содержание:
public partial class TimeTable
{
public TimeTable()
{
Reservations = new HashSet<Reservation>();
}
public int TimeTableId { get; set; }
public int MovieId { get; set; }
public int RoomId { get; set; }
public int SeatsAvaible { get; set; }
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
public virtual Movie Movie { get; set; }
public virtual ICollection<Reservation> Reservations { get; set; }
public virtual Room Room { get; set; }
}
И в TimeTableInsertModel (ведьма используются зрением):
public class TimeTableInsertModel
{
[Key]
public int TimeTableId { get; set; }
public int MovieId { get; set; }
public int RoomId { get; set; }
public int SeatsAvaible { get; set; }
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
public virtual Movie Movie { get; set; }
public virtual ICollection<Reservation> Reservations { get; set; }
public virtual Room Room { get; set; }
public int TicketQuantity { get; set; }
}
«Но Visual Studio говорит модель не содержит определение для„Жанр“и„Язык“.» Да, модель не обладает такими свойствами. Почему ошибка вас удивляет и что вы не понимаете? – usr
В оригинальной модели также нет определений, но когда я использую эту модель, они будут заполняться правильно. – NVO
Это неправда. Вы должны путать классы. Вы понимаете, почему компилятор испускает эту ошибку? – usr