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
按预期工作。所以它一定是一些没有显示的东西。