Эй, у меня есть структура, которая выглядит следующим образом:
Это две библиотеки, в которых есть некоторые данные, а также список книг, называемых "книгами".
Внутри моего контроллера библиотеки я заполняю контекст с помощью имитируемых данных, таких как:
public LibrariesController(LibrariesContext context)
{
_context = context;
if (_context.Libraries.Count() == 0)
{
// Create a new TodoItem if collection is empty,
// which means you can't delete all TodoItems.
_context.AddRange(getMockedLibraries());
_context.SaveChanges();
}
}
Методы для имитации данных просто добавляют статический контент в этот контекст, например:
private List<Book> getMockedBooks()
{
List<Book> mockedBooks = new List<Book>();
Book newBook = new Book();
newBook.Title = "Pride and Prejudice (Paperback)";
newBook.Author = "Jane Austen";
mockedBooks.Add(newBook);
newBook = new Book();
newBook.Title = "To Kill a Mockingbird (Paperback)";
newBook.Author = "Harper Lee";
mockedBooks.Add(newBook);
return mockedBooks;
}
private List<Library> getMockedLibraries()
{
List<Library> mockedLibraries = new List<Library>();
Library newLibrary = new Library();
newLibrary.Name = "ZUT Library";
newLibrary.ImgSrc = "http://przemysl-40.pl/wp-content/uploads/logo_ZUT.jpg";
newLibrary.Books = getMockedBooks();
mockedLibraries.Add(newLibrary);
newLibrary = new Library();
newLibrary.Name = "US Library";
newLibrary.ImgSrc = "http://partner.kubg.edu.ua/images/stories/Partners/poland1.jpg";
newLibrary.Books = getMockedBooks();
mockedLibraries.Add(newLibrary);
return mockedLibraries;
}
MyLibrariesContext основан на DBContextOptions и содержит библиотеку DbSet внутри:
public class LibrariesContext : DbContext
{
public LibrariesContext(DbContextOptions<LibrariesContext> options)
: base(options)
{
}
public DbSet<Library> Libraries { get; set; }
public DbSet<Book> Books { get; set; }
}
Самое смешное случается, когда я захожу в конечную точку / api / Libraries и хочу во второй раз увидеть на моем сайте замечательный JSON, реализация выглядит следующим образом:
// GET: api/Libraries
[HttpGet]
public async Task<ActionResult<IEnumerable<Library>>> GetTodoItems()
{
return await _context.Libraries.ToListAsync();
}
Я новичок в .NetCore и не могу понять, почему после второго запроса к той же конечной точке вместо списка книг я получил несколько нулей, например:
Буду очень признателен за любой совет.