【问题标题】:Code-First Entity Framework Relationship Always Null代码优先实体框架关系始终为空
【发布时间】:2018-02-02 10:57:49
【问题描述】:

我正在尝试使用 .NET Core 和使用代码优先的实体框架建立一对多关系。

我有两个表:Company 和 User,Company 有很多用户。两个表都返回除关系对象之外的所有列中的数据。

对于任何请求,Company 和 User ICollection 对象始终为 null。我尝试了流畅的映射:

            modelBuilder.Entity<User>()
            .HasOne<Company>(s => s.Company)
            .WithMany(s => s.User)
            .HasForeignKey(s => s.CompanyId); 

这是我的类对象:

这是我的数据库映射:

我已经通过内部联接验证了 User.CompanyId=1 && CompanyId=1 在数据库中返回结果,但用户上的 Company 对象仍然为空。我尝试将 CompanyId (FK) 重命名为 Company_CompanyId,使用实体框架属性的变体等均无济于事。

有什么建议吗?

【问题讨论】:

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


    【解决方案1】:

    要在EF core 中加载相关数据,您需要在查询中使用Include 方法:

    var user= context.Users.Include(u=>u.Company).FirstOrDefault(u.UserId==1);
    

    【讨论】:

    • 谢谢!简单的解决方案。我使用了不需要 Include() 的 Linq to Sql 拖放方法,所以这对我来说是新的,但很容易解决。
    • 不客气,是的,我知道这种感觉,问题是 EF Core 仍然不支持延迟加载
    猜你喜欢
    • 2012-10-11
    • 2017-07-05
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多