Как использовать SQL-запрос в ASP.NET MVC и какой использовать? - PullRequest
0 голосов
/ 03 июня 2019

Я создаю программу ASP.NET MVC о фильмах, сериалах и актерах. Моя цель для этой проблемы - добавить параметр, который, на мой взгляд, отвечает на вопросы "какие актеры участвовали в этом фильме / сериале?" и "Этот актер участвовал в каких фильмах / сериалах?" (В основном, когда я нажимаю на детали актера, я хочу, чтобы он появлялся в фильмах, в которых он участвовал, и в фильмах, которые я хочу показать, какие актеры участвовали в нем).

Для этого я создал таблицу между актером и фильмом, а также актером и сериалом под названием «Кинофильмы с участием» и «К сериалу с участием»

Это мои таблицы:

--Movies Table
MoviesData (
MoviesID int PK,
MoviesName varchar(50),
MoviesDescription text,
MoviesCategory varchar(50),
MoviesYear varchar(4));

--Series Table
SeriesData (
SeriesID int PK,
SeriesName varchar(50),
SeriesDescription text,
SeriesCategory varchar(50),
SeriesYear varchar(4));

--Actors Table
ActorsData (
ActorID int PK,
ActorName varchar(50),
ActorAge varchar(3))

--SeasonsnEpisodes
SeasonsEpisodes (
SeasonsEpisodesId in PK,
SeriesID int FK,
SerieSeasons int,
SerieEpisodes int)

--MoviesParticipated
MoviesParticipated (
MoviesParticipationId int PK
ActorID int FK
MovieID varchar(50) FK )

--SeriesParticipated
SeriesParticipated (
SeriesParticipationId int PK
ActorID int FK
SeriesID varchar(50) FK)

Но теперь я застрял. Я не знаю, должен ли я сделать запрос или что-то еще.

EDIT:

Подробности контроллера:

    public ActionResult Details()
        {
    PAPEntities db = new PAPEntities();
            SeriesViewModel[] SeriesVM = db.SeriesData.Select(serie => new SeriesViewModel
            {
                SerieID = serie.SerieID,
                SerieName = serie.SerieName,
                SerieCategory = serie.SerieCategory,
                SerieDescription = serie.SerieDescription,
                SerieYear = serie.SerieYear

            }).ToArray();


            return View(SeriesVM);
        }

ViewModel:

  public class SeriesViewModel
    {
        public int SerieID { get; set; }
        public string SerieName { get; set; }
        public string SerieCategory { get; set; }
        public string SerieDescription { get; set; }
        public string SerieYear { get; set; }
    }

Edit2 (забыл добавить представление):

<table class="table table-bordered table-responsive table-hover">
       <tr>
        <td><h5><b>Id da Série </b></h5></td>
        <td><h5><b>Nome </b></h5></td>
        <td><h5><b>Categoria</b></h5></td>
        <td><h5><b>Descrição</b></h5></td>
        <td><h5><b>Ano de Lançamento</b></h5></td>
        <td><h5><b>Episódios</b></h5></td>
        </tr>
        @foreach (var item in Model)
        {
        <tr>
            <td>@item.SerieID</td>
            <td>@item.SerieName</td>
            <td>@item.SerieCategory
            <td>@item.SerieDescription</td>
            <td>@item.SerieYear</td>
            <td>@Html.ActionLink("Temporadas e Episódios", "DetailsSeasonsNEpisodes")</td>
        </tr>
        }
    </table>

1 Ответ

1 голос
/ 05 июня 2019

Существуют различные способы приблизиться к тому, что вы хотите сделать, но придерживаясь того, что у вас есть, вы можете добавить часть «запроса» в свой код контроллера. Как то так;

public ActionResult Details(int actorId)
{
    PAPEntities db = new PAPEntities();

    SeriesViewModel[] SeriesVM = db.SeriesParticipated.Where(o => o.ActorId == actorId).Include(o => o.SeriesData).Select(o => new SeriesViewModel
    {
        SerieID = o.SeriesData.SerieID,
        SerieName = o.SeriesData.SerieName,
        SerieCategory = o.SeriesData.SerieCategory,
        SerieDescription = o.SeriesData.SerieDescription,
        SerieYear = o.SeriesData.SerieYear
    }).ToArray();

    return View(SeriesVM);

}

Без вашей модели EF я не могу сказать, будет ли она построена в первый раз, но она должна заставить вас двигаться в правильном направлении.

Обратите внимание, что теперь он начинается с данных SeriesParticipated, фильтрует их (где) по ActorId, присоединяет (включает) данные Series, затем выбирает модели представлений, используя ссылки из SeriesParticipated.

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