Допилим наше приложение. Чтобы как тестовое использовать можно было, проверку написанного устраивать без того, чтобы еще и в SQL Server Managеment Studio лазить.
Итак, что мы умеем? Мы умеем получать список авторов, добавлять новых, редактировать и удалять старых.
Но этой информации «маловато будет», если мы хотим менять некие связи внутри базы данных, и видеть их изменение. Поэтому вытащим на основную информацию еще и список всех книг, написанных автором.
Вначале допиливаем View под названием «Индекс» - добавляем в заголовки новый («Его книги») и в тело таблицы:
Теперь подредактируем контроллер, метод Index.
В нем мы получаем уже не объект типа «автор», а новый объект, создаем для него отдельный класс рядом с контроллером:
И вносим туда все геттеры и сеттеры, необходимые для получения не только имени и фамилии автора, но и его книг:
Итак, что мы умеем? Мы умеем получать список авторов, добавлять новых, редактировать и удалять старых.
Но этой информации «маловато будет», если мы хотим менять некие связи внутри базы данных, и видеть их изменение. Поэтому вытащим на основную информацию еще и список всех книг, написанных автором.
Вначале допиливаем View под названием «Индекс» - добавляем в заголовки новый («Его книги») и в тело таблицы:
<tbody>
@foreach(var a in Model)
{
<tr>
<td>@a.LastName</td>
<td>@a.FirstName</td>
<td>@Html.ActionLink("Редактировать", "Edit", new {id = a.Id})</td>
<td>@Html.ActionLink("Удалить", "Delete", new {id = a.Id})</td>
<td>@a.Books</td>
</tr>
}
</tbody>
Теперь подредактируем контроллер, метод Index.
В нем мы получаем уже не объект типа «автор», а новый объект, создаем для него отдельный класс рядом с контроллером:
И вносим туда все геттеры и сеттеры, необходимые для получения не только имени и фамилии автора, но и его книг:
namespace Books.Web.Models
{
public class AuthorListRecord
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Books { get; set; }
}
}
Таким образом, мы получили всех авторов из таблицы авторов и с помощью
Books = string.Join(", ", a.BookAuthorships.Select(b => b.Book.name))
Вытащили все книги, написанные данным автором, из промежуточной таблицы.
F5 – стартуем приложение J
Комментариев нет:
Отправить комментарий