DbContext 无法从数据库正确加载数据

DbContext doesn't load data properly from database

我有一个 .NET 应用程序,用户可以在其中 create/edit 他们的过滤器和第二个控制台应用程序,它作为后台任务运行并应用他们的过滤器。

我扩展了 Application 使用 class:

public class ApplicationUser : IdentityUser
{
    public ApplicationUser()
    {
        Filters = new List<FilterData>();
    }

    [SqlDefaultValue(DefaultValue = 0)]
    public long Credit { get; set; }

    public virtual ICollection<FilterData> Filters { get; set; }
}

我的控制台应用程序创建了一个 DbContext 并尝试使用 Filters 属性:

static void Main(string[] args)
{
    var contextOptions = new DbContextOptionsBuilder<ApplicationDbContextEx>()
            .UseSqlServer(@"connection string....")
            .Options;

    ApplicationDbContextEx context = new ApplicationDbContextEx(contextOptions);

    foreach (var user in context.Users.ToList())
    { 
        // Filters 
        Debug.Assert(user.Filters != null, "weird because we have filters in db");      
    }
}

我的问题是 user.Filters 始终为空,即使数据库中存在有效过滤器也是如此。

我猜这是 DbContext 创建的问题。

感谢帮助!

您是否使用约定、属性或 FluentAPI 定义了关系?尝试使用 Include:

foreach (var user in context.Users.Include(a => a.Filters).ToList())
{
}