Entity Framework 与 IdentityUser 的关系未解析

Entity Framework relationship to IdentityUser not resolving

我有一个名为“MyFile”的class,它与“Workspace”具有多对一关系,然后“Workspace”与“IdentityUser”具有多对一关系。这在我创建工作区时效果很好,与 IdentityUser 的关系配置正确,但是当我获取工作区时,所有者字段显示为空。在数据库中,值在所有者列中设置。

所以我想做的是获取所有文件的列表以及它们属于谁,但是由于所有者 属性 为空,我无法找出所有者。数据库方面看起来都不错。 (此代码已简化以关注问题)

public class MyFile
{
    // Base
    public Guid MyFileID { get; set; }

    [Column(TypeName = "nvarchar(256)")]
    public string Name { get; set; }
    
    // Workspace
    public virtual Workspace Workspace { get; set; } 
}


public class Workspace
{
    // Base
    public Guid WorkspaceID { get; set; }
    public string Name { get; set; }

    // Security
    public virtual IdentityUser Owner { get; set; }
}

获取以 Owner = Null 结尾的信息的代码:

        var myFiles = _applicationDbContext.MyFiles
            .Include(x => x.Workspace)
            .ThenInclude(y => y.Owner)
            .Where(x => x.Deleted == showDeleted)
            .OrderByDescending(x => x.Uploaded)
            .Skip(pagesize*(page-1))
            .Take(pagesize);

我设法通过使用 ApplicationUser 扩展 IdentityUser class 然后将关系更改为 ApplicationUser 来解决问题。 我还添加了一个 ApplicationUserId,我在填充 ApplicationUser 的同时填充它,然后我可以用来在我的 lamdba 中查找正确的 IdentityUser。可能有更好的解决方案,但这对我有用。

public class Workspace
{
    // Base
    public Guid WorkspaceID { get; set; }
    public string Name { get; set; }

    // Security
    public string ApplicationUserId { get; set; }
    public ApplicationUser ApplicationUser { get; set; }
}

分机 Class:

public class ApplicationUser : IdentityUser
{
}