Мне сложно понять, как я могу вернуть все книги, у которых есть рейтинг. Для каждой книги может применяться рейтинг (отношение «один к нулю или один»).
Класс модели книги:
public class Book
{
[Key]
[NotNull]
[DisplayName("isbn")]
public string Isbn { get; set; }
[NotNull]
[DisplayName("title")]
[MaxLength(255)]
[MinLength(1)]
public string Title { get; set; }
[NotNull]
[DisplayName("author")]
[MaxLength(255)]
[MinLength(1)]
public string Author { get; set; }
[NotNull]
[DisplayName("year_of_publication")]
public int yearOfPublication { get; set; }
[NotNull]
[DisplayName("publisher")]
[MaxLength(255)]
public string publisher { get; set; }
[JsonIgnore]
public virtual Rating Rating { get; set; }
}
Класс рейтинга:
public class Rating
{
[NotNull]
[DisplayName("rating_seq")]
public int Id { get; set; }
[NotNull]
[MaxLength(13,ErrorMessage = "ISBN is too long!")]
[MinLength(1)]
[ForeignKey("Book")]
public string Isbn { get; set; }
[NotNull]
[DisplayName("book_rating")]
public int rating { get; set; }
[JsonIgnore]
public virtual Book Book { get; set; }
}
По сути, я должен вернуть список книг с рейтингом. Прямо сейчас я думаю о чем-то вроде:
[HttpGet("/ratings")]
public async Task<ActionResult<IEnumerable<Book>>> GetBooksWithRating()
{
var books = await _context.Book
.Include(l => l.Rating)
.Where(s => s.Isbn == _context.Rating.Isbn) //not accessible
.ToListAsync();
if (books == null)
{
return NotFound();
}
return books;
}
Очевидно, что это неверно, но любая помощь в том, как исправить это, будет принята с благодарностью!