我的环境:VS 2017,EF Core(2.1.4),SQL Server 2017,渴望加载
当我这样构建查询时:
var query = MyDbSet.Where(c => c.CustomerId > 2).Include(c => c.Addresses);
var result = await query.FirstOrDefaultAsync();
在结果实体中,我具有所需的导航属性(地址)。 但是当我这样做时:
var intermediate = MyDbSet.Where(c => c.CustomerId > 2);
var query = intermediate.Include(c => c.Addresses);
var result = await query.FirstOrDefaultAsync();
结果不带有正确填充的Addresses属性(它为null)。
我正在开发通用抽象层,并希望允许用户提供包含语句的列表。我想遍历这些语句,并将它们一个接一个地添加。
在我的单元测试环境中,它的工作方式与我期望的一样(使用sqlite),但是在生产环境(SQL Server)中,查询未正确填充。知道这里发生了什么吗?
如何在SQL Server环境中执行以下操作:
foreach (var expression in includes)
query = query.Include(expression);
希望我的问题有道理。