发布:2023/12/7 15:31:53作者:大数据 来源:大数据 浏览次数:655
实际应用当中,可能有A表包含B表,C表;B表包含B1表,B2表;C表包含C1表,C2表
这样就出现了多个表关联和绑定包含的情况,ef core为我们提供了Include和ThenInclude的子句来实现上述情况。
特别注意多表关联要使用Include的lambda表达式,使用简单的字符串包含不会有ThenInclude子句,如以下会提示错误:
var q = _dbcontext.A.Include(nameof(B)).ThenInclude(b=>b.B1).FirstOrDefault(o => o.Id == id);
正确的写法是:
var q = _dbcontext.A.Include(a=>a.B).ThenInclude(b=>b.B1).FirstOrDefault(o => o.Id == id);
如果要包含B1与B2表:
var q=_dbcontext.A
.Include(a => a.B) .ThenInclude(b =>b.B1)
.Include(a => a.B) .ThenInclude(b => b.B2) .ToList();
所以建议写include子句时最好使用lambda表达式。
参考:https://docs.microsoft.com/zh-cn/ef/core/querying/related-data
© Copyright 2014 - 2025 柏港建站平台 ejk5.com. 渝ICP备16000791号-4