Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.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# i可用于1到N个表以选择所有数据(c)_C#_Iqueryable - Fatal编程技术网

C# i可用于1到N个表以选择所有数据(c)

C# i可用于1到N个表以选择所有数据(c),c#,iqueryable,C#,Iqueryable,我是C语言的初学者,现在正在编写搜索函数的代码。我已经链接了1到N的表,如下面的例子。我想找出表A中与表B、KeyB002匹配的数据。答案是KeyA001和KeyA003。 我一直在使用IQueryable,这种语法可以吗?或者,这行不通?我想知道SingleOrDefault或FirstOrDefault只会选择tableA附带的第一个键,而不会从所有附加键中进行搜索并找到tableA中的数据 多谢各位 当前语法仅供参考-屏幕中的searchtableB_ID var IqueryableDa

我是C语言的初学者,现在正在编写搜索函数的代码。我已经链接了1到N的表,如下面的例子。我想找出表A中与表B、KeyB002匹配的数据。答案是KeyA001和KeyA003。 我一直在使用IQueryable,这种语法可以吗?或者,这行不通?我想知道SingleOrDefault或FirstOrDefault只会选择tableA附带的第一个键,而不会从所有附加键中进行搜索并找到tableA中的数据

多谢各位

当前语法仅供参考-屏幕中的searchtableB_ID

var IqueryableData = from m in db.tableA.Include(p => p.tableB) select m; 
IqueryableData = IqueryableData.Where(s => s.tableB.SingleOrDefault().tableB_Key == searchtableB_ID);
表A和表B: KeyA001-KeyB001 KeyA001-KeyB002 KeyA001-KeyB005 KeyA001-KeyB007

KeyA002-KeyB003 KeyA002-KeyB005 KeyA002-KeyB008

KeyA003-KeyB001 KeyA003-KeyB002 KeyA003-KeyB006 KeyA003-KeyB009

您可以:

var queryableData = db.tableB.Include(p => p.tableA).Where(q=> q.tableB_key == searchtableB_ID).First(m => m.tableA);

请注意,WHERE查询中的FirstOrDefault/SingleOrDefault表达式不会阻止返回多个记录,相反的Include p=>p.tableB而不是p=>p.tableA

FirstOrDefault/SingleOrDefault表达式。