ASP.NET Core EF找不到导航属性

时间:2019-01-25 18:16:25

标签: asp.net-core entity-framework-core

我正在制作一个调查应用程序,它具有3个领域模型:

ActivityItem对于我要询问的每个活动。

ItemResponseActivityItemChecklist绑在一起

Checklist以容纳所有ItemResponses

我想在视图中获取ChecklistItemResponseActivityItemName,但是尽管数据库具有ActivityItemId,但ActivityItem始终为空正确填充。我只是不明白为什么该应用无法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 :(得分:1)

这是因为您的导航属性名称为ActivityItem,但是您正在呼叫ActivityItems。因此完整查询应如下:

var checkList = await _context.Checklist.Include(c => c.ItemResponses)
                     .ThenInclude(ir => ir.ActivityItem).ToListAsync();