C# 如何使用实体框架核心在On子句中添加多个条件

C# 如何使用实体框架核心在On子句中添加多个条件,c#,linq-to-sql,entity-framework-core,C#,Linq To Sql,Entity Framework Core,作为数据库表A、B和AB(AB是A和B表之间的多对多关联),并且在Entity Frameworc Core数据库上下文中只有表A和B声明为DbSet,如何使用LINQtosql SELECT A.Id, A.Name FROM A LEFT JOIN AB ON AB.AId = A.Id AND AB.BId = @myVariable WHERE AB.AId IS NULL SELECT [a].[Id], [a].[Name] FROM [A] AS [a] LEFT JOIN (

作为数据库表A、B和AB(AB是A和B表之间的多对多关联),并且在
Entity Frameworc Core
数据库上下文中只有表A和B声明为
DbSet
,如何使用
LINQ
to
sql

SELECT A.Id, A.Name
FROM A
LEFT JOIN AB ON AB.AId = A.Id AND AB.BId = @myVariable
WHERE AB.AId IS NULL
SELECT [a].[Id], [a].[Name]
FROM [A] AS [a]
LEFT JOIN (
     SELECT [ab].[AId], [ab].[BId]
     FROM [AB] AS [ab]
     WHERE [ab].[BId] = @__variable_0
) AS [t] ON [i].[Id] = [t].[AId]
WHERE [t].[BId] IS NULL
以下
LINQ

var result = (from a in _context.A
              from t in a.ABs
                  .DefaultIfEmpty()
                  .Where(x => x.BId == @variable)
              where t == null
              select a)
return result.ToListAsync();
生成以下
SQL

SELECT A.Id, A.Name
FROM A
LEFT JOIN AB ON AB.AId = A.Id AND AB.BId = @myVariable
WHERE AB.AId IS NULL
SELECT [a].[Id], [a].[Name]
FROM [A] AS [a]
LEFT JOIN (
     SELECT [ab].[AId], [ab].[BId]
     FROM [AB] AS [ab]
     WHERE [ab].[BId] = @__variable_0
) AS [t] ON [i].[Id] = [t].[AId]
WHERE [t].[BId] IS NULL
我如何更新我的
LINQ
以避免子查询语句,而不在
实体框架
上下文中添加AB表作为
DbSet
属性?

它仍然不是固定的“功能”它仍然不是固定的“功能”