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