首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Entity Framework7配置一对多关系的正确方法是什么?

使用Entity Framework7配置一对多关系的正确方法是什么?
EN

Stack Overflow用户
提问于 2015-11-19 08:11:13
回答 2查看 102关注 0票数 0

我有一个设置,其中一个集成对象有许多HeaderMap对象。类的设置如下所示。当我调用integration.HeaderMaps时,我得到的返回计数为0,即使数据库清楚地显示应该有1个结果。我正在使用Entity Framework7。在正确设置的一对多关系中,我遗漏了什么?

代码语言:javascript
复制
public class Integrations
{
    public Integrations()
    {
        HeaderMaps = new HashSet<HeaderMaps>();
    }

    [Key]
    public int IntegrationId { get; set; }

    ...

    [InverseProperty("Integration")]
    public virtual ICollection<HeaderMaps> HeaderMaps { get; set; }
}

public class HeaderMaps
{
    [Key]
    public int HeaderMapId { get; set; }
    public int IntegrationId { get; set; }

    [ForeignKey("IntegrationId")]
    [InverseProperty("HeaderMaps")]
    public virtual Integrations Integration { get; set; }
}

public partial class Dev_IntegrationsContext : DbContext
{
    protected override void OnConfiguring(DbContextOptionsBuilder options)
    {
        options.UseSqlServer(@"uid=sa;pwd=******;Initial Catalog=Dev_Integrations; Data Source=*******;Min Pool Size=10;Max Pool Size=150;");
    }

    public virtual DbSet<HeaderMaps> HeaderMaps { get; set; }
    public virtual DbSet<Integrations> Integrations { get; set; }
}

运行时:

代码语言:javascript
复制
var integration = context.Integrations.First(i => i.IntegrationId == 4);
integration.HeaderMaps // returns a count of 0
context.HeaderMaps.First().Integration // there is only 1 row in the table, and it returns an Integrations object with id of 4

SQL:

代码语言:javascript
复制
select * from HeaderMaps where IntegrationId = 4; -- returns 1 record
EN

回答 2

Stack Overflow用户

发布于 2015-11-19 08:31:59

命名约定是使用单一的类名,并且生成的表将是复数形式的。尝试将集成更改为集成,将HeaderMaps更改为HeaderMap。你也可以发布你的DbContext代码吗?有没有可能HeaderMaps没有在其中声明?

票数 0
EN

Stack Overflow用户

发布于 2015-11-21 06:38:12

据我所知,问题不在于你们关系的配置。您需要使用.Include()

代码语言:javascript
复制
var integration = context.Integrations
     .Include(i => i.HeaderMaps)
     .First(i => i.IntegrationId == 4);

请参阅How to work with collections

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33793002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档