實體框架ApplicationUser子實體返回null

asp.net-core asp.net-core-mvc asp.net-identity-3 entity-framework-core

我們有一個繼承自IdentityUser的ApplicationUser類。 ApplicationUser可以有許多設備。

    public class ApplicationUser : IdentityUser
{
    public virtual ICollection<Device> Devices { get; set; }
}

設備定義為

    public partial class Device
{
    [Key]
    public int DeviceID { get; set; }
    public string UserId { get; set; }
    public virtual ApplicationUser User { get; set; }
    public string DeviceName { get; set; }
}

設置了一對多關係

protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

            modelBuilder.Entity<Device>(entity =>
        {
            entity.HasKey(e => e.DeviceID);

            entity.Property(e => e.DeviceName)
                .IsRequired()
                .HasMaxLength(50)
                .HasColumnType("varchar");

            entity.Property(e => e.UserId)
                .IsRequired()
                .HasMaxLength(450);

            entity.HasOne(d => d.User).WithMany(p => p.Devices).HasForeignKey(d => d.UserId).OnDelete(DeleteBehavior.Restrict);
        });

        public virtual DbSet<Device> Devices { get; set; }
}

以下代碼正確返回用戶

var membershipUser = await _userManager.FindByEmailAsync(email);

我知道membershipUser在Devices表中有6個設備,但Devices屬性為null。

以下內容還為此用戶設備返回null

var deviceList = membershipUser.Devices.ToList();

如何連接設備以便正確返回?

一般承認的答案

延遲加載在EF7EF7 。但您可以在請求中使用Include




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因