ASP.NET Core EF не находит свойство навигации - PullRequest
0 голосов
/ 25 января 2019

Я создаю приложение для опроса и имею 3 модели домена:

ActivityItem для каждого вида деятельности, о котором я хочу спросить.

ItemResponse, чтобы связать вместе ActivityItemи Checklist

Checklist для хранения всех ItemResponses

Я хочу получить Checklist. ItemResponse. ActivityItem. Name в виде,но ActivityItem всегда равен нулю, несмотря на то, что в базе данных правильно заполнен ActivityItemId.Я просто не понимаю, почему приложение не может Include() эту таблицу.

Вот фрагменты моих моделей:

ActivityItem

public class ActivityItem
{
        public int Id { get; set; }
        public string Name { get; set; }

ItemResponse

public class ItemResponse
{ 
    public int Id { get; set; }

    public int ChecklistId { get; set; }
    public virtual Checklist Checklist { get; set; }
    public int ActivityItemId { get; set; }
    public virtual ActivityItem ActivityItem { get; set; }

Checklist

public class Checklist
{
    public int Id { get; set; }
    public ICollection<ItemResponse> ItemResponses { get; set; }

Я благодарен за любую помощь, указывающую мне в правильном направлении, почему это не работает.Спасибо!

enter image description here

enter image description here

1 Ответ

0 голосов
/ 25 января 2019

Это потому, что ваше имя навигационного свойства ActivityItem, но вы звоните ActivityItems.Таким образом, полный запрос должен быть следующим:

var checkList = await _context.Checklist.Include(c => c.ItemResponses)
                     .ThenInclude(ir => ir.ActivityItem).ToListAsync();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...