Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq在哪里包括_C#_Linq_Entity Framework - Fatal编程技术网

C# Linq在哪里包括

C# Linq在哪里包括,c#,linq,entity-framework,C#,Linq,Entity Framework,我被这个linq查询困住了 我有这张桌子 ID A B C D 1 some data 2 some other data 然后,对于该表上的每个记录,我可能没有行或有很多行 ID TableA_ID R 1 1 1 2 1 2 3 1 5 4 2 2 比如说。第1行(一些数据)在表B上有3行 我试着用 tableA.Include(x => x.tablebchilds.Where

我被这个linq查询困住了

我有这张桌子

ID  A   B   C  D
1   some data 
2   some other data
然后,对于该表上的每个记录,我可能没有行或有很多行

ID  TableA_ID R
1   1         1
2   1         2
3   1         5
4   2         2
比如说。第1行(一些数据)在表B上有3行

我试着用

tableA.Include(x => x.tablebchilds.Where( d => d.R == 1)).ToList() 
但它不起作用。和其他许多人一样,我也变了

此查询的目的是返回
tableA.row
#1,如果我将其作为值传递(值
R
)<代码>编号2不会给出任何结果

表格在EF上链接。所以
TableB.tableA\u ID
tableA.ID

编辑#1

我试了题中标记为重复的答案,但没有成功。如果用户插入1作为参数,那么linq查询应该返回行1,一些数据。如果2作为参数传递,则不返回任何内容

工作SQL语句是:

SELECT [TableA].* FROM [TableA] JOIN [TableB] ON [TableA].[Id] = [TableB].[TableA_Id] WHERE [TableB].[R] = 1

谢谢

如果您正确配置了数据库关系,那么这必须正常工作

tableA.Include(x => x.tableBChilds).Where(tableA => tableA.tableBChilds.Any(b => b.R== 1)).ToList();

如果您正确配置了数据库关系,那么这必须起作用

tableA.Include(x => x.tableBChilds).Where(tableA => tableA.tableBChilds.Any(b => b.R== 1)).ToList();


@格特·阿诺德:我不认为这是重复的,因为我认为恩格洛斯特在问别的问题,尽管无可否认,这不是很清楚。@jjj也许。关键是
包括
其中
是不可能的(遗憾的是)。人们一遍又一遍地问这个问题。我在副本中描述了一项工作。如果OP试图实现其他目标,是的,它应该得到澄清。@GertArnold对这个答案的质疑在我的情况下不起作用。我知道包括在哪里是不可能的。我将编辑我的问题以澄清这一点。谢谢对不起,我还是不太明白你的意思。它看起来像一个
Any
查询。它可能有助于显示工作代码和/或示例数据(输入和输出)。还可以显示导航属性(如A.B)的位置。这些总是使生活变得容易得多。无论如何,我会重新打开的,因为它似乎不是一个复制品,但它很可能会被认为“不清楚你在问什么”。@GertArnold谢谢Gert。我在马克的答案上留下了一些数据。总而言之:SQL语句工作正常。我正试图在linq ef中做到这一点。很appreciated@Gert阿诺德:我不认为这是重复的,因为我认为恩格洛斯特在问别的问题,尽管无可否认,这不是很清楚。@jjj也许吧。关键是
包括
其中
是不可能的(遗憾的是)。人们一遍又一遍地问这个问题。我在副本中描述了一项工作。如果OP试图实现其他目标,是的,它应该得到澄清。@GertArnold对这个答案的质疑在我的情况下不起作用。我知道包括在哪里是不可能的。我将编辑我的问题以澄清这一点。谢谢对不起,我还是不太明白你的意思。它看起来像一个
Any
查询。它可能有助于显示工作代码和/或示例数据(输入和输出)。还可以显示导航属性(如A.B)的位置。这些总是使生活变得容易得多。无论如何,我会重新打开的,因为它似乎不是一个复制品,但它很可能会被认为“不清楚你在问什么”。@GertArnold谢谢Gert。我在马克的答案上留下了一些数据。总而言之:SQL语句工作正常。我正试图在linq ef中做到这一点。非常感激它不起作用或者我错过了什么。我用一条有效的SQL语句编辑了我的问题。会发生什么?异常消息?当您说`tableA.ID==1`时,1应该是R值,而不是tableA.ID。我需要任何“tableA”行在“tableB”中有1的内容。谢谢你不是说R值是你答案中TableA.ID的前置键吗?如果这是真的,则筛选
tableA.ID==1
您选择的是tableb child.R==1Sorry的行。我在那里打错了字。表B有一个FK到表a和R值。如果1是参数,则应返回tableA.row#1。如果是2,则返回两行。(我用新数据编辑了原始问题)ThanksIt不起作用或者我遗漏了什么。我用一条有效的SQL语句编辑了我的问题。会发生什么?异常消息?当您说`tableA.ID==1`时,1应该是R值,而不是tableA.ID。我需要任何“tableA”行在“tableB”中有1的内容。谢谢你不是说R值是你答案中TableA.ID的前置键吗?如果这是真的,则筛选
tableA.ID==1
您选择的是tableb child.R==1Sorry的行。我在那里打错了字。表B有一个FK到表a和R值。如果1是参数,则应返回tableA.row#1。如果是2,则返回两行。(我用新数据编辑了原始问题)谢谢