Entity framework 实体框架无法获取子元素

Entity framework 实体框架无法获取子元素,entity-framework,sqlite,entity-framework-6,Entity Framework,Sqlite,Entity Framework 6,我有SQLite db和这些EF模型和上下文 模型和上下文 public class CardHolder { public int CardHolderId { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string PhoneNumber { get; set; } public string EmailAd

我有SQLite db和这些EF模型和上下文

模型和上下文

public class CardHolder
{
    public int CardHolderId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string PhoneNumber { get; set; }
    public string EmailAddress { get; set; }
    public string TenantName { get; set; }
    public ICollection<AccessCard> AccessCards { get; set; }
}

public class AccessCard
{
    public int AccessCardId { get; protected set; }
    public CardHolder CardHolder { get; set; }
    public DateTime ActivationDate { get; protected set; }
    public bool ActivationProcessed { get; set; }
    public DateTime? DeactivationDate { get; protected set; }
    public string DeactivationReason { get; set; }
    public bool DeactivationProcessed { get; set; }
}

public class MyContext : DbContext
{
    public DbSet<CardHolder> CardHolders { get; set; }
    public DbSet<AccessCard> AccessCards { get; set; }
}
问题1:为什么我会遇到这个异常

System.InvalidOperationException:'指定的包含路径不可用 有效。EntityType“SQLiteDemo.Models.candler”未声明 名为“AccessCard”的导航属性

如果我用

var cardHolders = db.CardHolders.Include("AccessCards").ToList();
我得到另一个错误:

SQL逻辑错误没有这样的列:Extent2.cardinger\u cardinger id

实体框架有什么问题?

问题2:为什么我不能在Include语句中使用arrow函数,它根本不编译?

问题3:如果我的ICollection关联属性AccessCard不是虚拟的,那么为什么我需要使用Include?这意味着即时加载必须自行工作


为什么他妈的它是如此的问题和马车?任何东西都无法正常工作:(

1-您已经确定了输入错误:)

1B-“SQL逻辑错误无此类列:Extent2.持卡人\持卡人ID”

EF找不到你的FK。您可以将其添加到AccessCard型号中:

public int CardHolderId { get; set; }
2-您需要引入LINQ扩展。确保在顶部有以下两个using语句:

using System.Data.Entity;
using System.Linq;
3-你和其他许多人一样,都是误解。即时加载仍然需要
Include()
来获取相关数据。延迟加载仅在访问关系时获取它们。

我有“使用System.Ling”,但没有“使用System.Data.Entity”,这就是为什么Link不能与EF实体一起工作。在AccessCard模型中添加了CardingID属性,解决了以下问题:)谢谢。
public int CardHolderId { get; set; }
using System.Data.Entity;
using System.Linq;