代码优先实体框架关系始终为空

use*_*458 4 .net entity-framework .net-core

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

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

对于任何请求,公司和用户 ICollection 对象始终为空。我尝试了流畅的映射:

            modelBuilder.Entity<User>()
            .HasOne<Company>(s => s.Company)
            .WithMany(s => s.User)
            .HasForeignKey(s => s.CompanyId); 
Run Code Online (Sandbox Code Playgroud)

这是我的类对象:

用户

公司

这是我的数据库映射:

在此处输入图片说明

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

有什么建议吗?

oct*_*ccl 5

要在EF 核心中加载相关数据,您需要使用Include方法作为查询的一部分:

var user= context.Users.Include(u=>u.Company).FirstOrDefault(u.UserId==1);
Run Code Online (Sandbox Code Playgroud)