C# 为什么我的导航ICollection<;T>;属性包含0项

C# 为什么我的导航ICollection<;T>;属性包含0项,c#,entity-framework,ef-code-first,C#,Entity Framework,Ef Code First,我有一个实体类Alpha,它具有ICollection Betas导航属性。当我在Alpha中加载项目并使用此语句.include(a=>a.Betas)时,导航属性中的项目数始终为0,但Beta的数据库表中有与Alpha链接的项目。我做错了什么 执行此操作的查询语句如下所示 var alphaList = _alphaRepository.GetAll() .Include(a => a.Betas) .ToList();

我有一个实体类
Alpha
,它具有
ICollection Betas
导航属性。当我在
Alpha
中加载项目并使用此语句
.include(a=>a.Betas)
时,导航属性中的项目数始终为0,但
Beta
的数据库表中有与
Alpha
链接的项目。我做错了什么

执行此操作的查询语句如下所示

var alphaList = _alphaRepository.GetAll()
                .Include(a => a.Betas)
                .ToList();
编辑

以下是实体模型

public class Alpha
{
    public int Id { get; set; }
    public string Name { get; set; }
    public DateTime StartDate { get; set; }
    public int TenantId { get; set; }

    public virtual ICollection<Beta> Betas { get; set; }

}

public class Beta
{
    public int BetaId { get; set; }
    public string Name { get; set; }
    public DateTime StartDate { get; set; }
    public int TenantId { get; set; }
    public int AlphaId { get; set; }

    public virtual Alpha Alpha { get; set; }

}
公共类Alpha
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共日期时间起始日期{get;set;}
public int TenantId{get;set;}
公共虚拟ICollection Betas{get;set;}
}
公共类测试版
{
公共int BetaId{get;set;}
公共字符串名称{get;set;}
公共日期时间起始日期{get;set;}
public int TenantId{get;set;}
公共int AlphaId{get;set;}
公共虚拟Alpha Alpha{get;set;}
}

什么类型的_alphaRepository?@SimonKarlsson它是一个Alpha类型的存储库,我在加载所有Alpha实体类型的项目时使用它。它工作得很好,但是导航属性没有加载。你能显示模型代码吗?仍然有太多的未知数。这是第一个数据库还是第一个代码?是否涉及任何显式映射?在
GetAll
中发生了什么(或者:
包含的
是否有效)?这是完整的类模型还是代表了更复杂的真实模型?可能有一些原因导致
Include
不起作用,所以我们需要一个完整的图片。这里是要点。显示的代码没有任何错误。我在一个干净的EF6.1.3环境中复制/粘贴了您的模型,正确创建了表和FK关系,
Include
按预期工作。所以它一定是没有显示的。什么类型的“alphaRepository”@SimonKarlsson它是Alpha类型的存储库,我在加载所有实体类型Alpha的项目时使用它。它工作得很好,但是导航属性没有加载。你能显示模型代码吗?仍然有太多的未知数。这是第一个数据库还是第一个代码?是否涉及任何显式映射?在
GetAll
中发生了什么(或者:
包含的
是否有效)?这是完整的类模型还是代表了更复杂的真实模型?可能有一些原因导致
Include
不起作用,所以我们需要一个完整的图片。这里是要点。显示的代码没有任何错误。我在一个干净的EF6.1.3环境中复制/粘贴了您的模型,正确创建了表和FK关系,
Include
按预期工作。所以它一定是一些没有显示的东西。