小编Ily*_*zus的帖子

EF Core 延迟加载代理随机返回 null 而不是实体

我有一个带有 SQL 数据库的 .Net Core 3.1 应用程序。我使用延迟加载代理从相关表中自动检索数据。基本上,我有一个表,它通过 1 对多或 1 对 1 关系引用其他一些实体。事情是,在大多数情况下,每个关系都可以,每个实体都被加载,我可以读取它的属性(例如名称字段)。

但是,在非常特殊的情况下,这些实体不会加载,尽管关系 Id 存在。它看起来像这样:

模型是这样的:

public partial class Delegation
{
    public Guid Id { get; set; }
    public int UserFrom { get; set; }
    public int UserTo { get; set; }

    public virtual User UserFromNavigation { get; set; }
    public virtual User UserToNavigation { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在数据库上下文中初始化:

public virtual DbSet<Delegation> Delegations { get; set; }
...
modelBuilder.Entity<Delegation>(entity =>
{
    entity.Property(e => e.Id).ValueGeneratedNever();

    entity.HasOne(d => …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework entity-framework-core asp.net-core-3.1

5
推荐指数
1
解决办法
1304
查看次数