.net - 代码优先 Entity Framework 关系始终为空

标签 .net entity-framework .net-core

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

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

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

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

这是我的类对象:

User

Company

这是我的数据库映射:

enter image description here

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

有什么建议吗?

最佳答案

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

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

关于.net - 代码优先 Entity Framework 关系始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45863659/

相关文章:

.net - 除了解析 .message 属性之外,是否有可靠的方法来识别由锁定文件引起的 IOexceptions?

.net - CMS 类似于 Umbraco 但在 PHP 中?

c# - 使用抽象类作为方法参数和将泛型参数限制到所述抽象类之间有什么明显的区别吗?

c# - 命名空间中不存在类型或命名空间名称 'Core'

wcf - EDM -> POCO -> WCF (.NET4) 但是传输集合会导致 IsReadOnly 设置为 TRUE

c# - DisposeAsync 应该抛出后台任务异常,还是留给客户端显式观察?

c# - 在 SignalR 上发送/接收复杂对象

c# - 使用 DbContext 访问连接属性

.net-core - 在 mcr.microsoft.com/dotnet/core 上哪里可以获得 .netcore 的 Docker 镜像/标签列表?

c# - .net core 2 的编码问题