Не удается получить связанные данные в ASP.Net из моделей - PullRequest
1 голос
/ 16 октября 2019

Я только начал изучать ASP.Net Core, и у меня есть некоторые проблемы с отношениями.

В моей модели пива у меня есть эти свойства навигации:

/* Navigation Properties */
public int BreweryID { get; set; }
public Brewery Brewery { get; set; }

В моей модели пивоваренного завода яимеют следующие свойства навигации:

/* Navigation Properties */
public ICollection<Beer> Beers { get; set; }

Мой dbContext выглядит следующим образом:

modelBuiler.Entity<Beer>()
            .HasOne(c => c.Brewery)
            .WithMany(u => u.Beers)
            .HasForeignKey(c => c.BreweryID)
            .IsRequired()
            .OnDelete(DeleteBehavior.Restrict);

В контроллере я спрашиваю мои данные так:

// GET: api/brewery
    [HttpGet]
    public async Task<ActionResult<IEnumerable<Brewery>>> GetBreweries()
    {
        return await _context.Breweries.ToListAsync();
    }

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

В Почтальоне это выглядит так:

// Пиво

{
    "id": 11,
    "name": "test",
    "brand": "test",
    "alcoholContent": 2,
    "platoScale": 4,
    "description": "test",
    "breweryID": 7,
    "brewery": null,
    "imageID": 3,
    "image": null,
    "foodpairings": null,
    "categoryID": 1,
    "category": null,
    "favorites": null
},
{
    "id": 12,
    "name": "test",
    "brand": "test",
    "alcoholContent": 4,
    "platoScale": 7,
    "description": "test",
    "breweryID": 7,
    "brewery": null,
    "imageID": 4,
    "image": null,
    "foodpairings": null,
    "categoryID": 1,
    "category": null,
    "favorites": null
},

// пивоварня

 {
    "id": 7,
    "name": "Moortgat",
    "address": "test",
    "founder": "test",
    "foundationYear": "2008-01-10T00:00:00.123",
    "description": "test",
    "website": "test",
    "beers": null,
    "imageID": 3,
    "image": null
}

Есть какие-нибудь предложения?

Ответы [ 3 ]

0 голосов
/ 16 октября 2019

Попробуйте это.

return await _context.Breweries
    .Include(x => x.Beers)
    .ToListAsync();

https://docs.microsoft.com/en-us/ef/core/querying/related-data

0 голосов
/ 16 октября 2019

Точная проблема, с которой вы сейчас столкнулись, указана в этой теме

.Net Core 3 и EF Core 3 включают проблему (JsonException) [решено]

0 голосов
/ 16 октября 2019

Связанные объекты для пива не включены в запрос. Пожалуйста, включите тот же _context.Breweries.Include (brewery => brewery.Beers)

...