【发布时间】:2020-04-15 20:36:36
【问题描述】:
我不确定我是否做错了,或者这是否是 EF Core 3.1 中的错误,但以下内容适用于 EF 6.x,并且是我正在转换为 EF Core 3.1 的通用存储库的一部分:
IQueryable<TEntity> query = this.Context.Set<TEntity>();
if (filter != null)
{
query = query.AsExpandable().Where(filter);
}
if (includeProperties != null)
{
foreach (var includeProperty in includeProperties.Split(new[] { ',' },
StringSplitOptions.RemoveEmptyEntries))
{
query = query.Include(includeProperty);
}
}
但它在 EF Core 3.1 中不起作用
我尝试将我的“角色”属性从 virtual 更改为常规公共属性,但没有更改,奇怪的是,如果我在调用上述代码之前在数据层中调用以下代码:
var test = this.Context
.Users
.Include(u => u.Roles)
.FirstOrDefault(f => f.Username == "xxx@xxx.com");
它按预期工作,然后如果我执行有问题的代码,它会按预期加载我的角色。
有什么想法吗?
谢谢
【问题讨论】:
标签: c# entity-framework entity-framework-core linqkit