如何使用LINQ将一行连接到源表中的每一行

Nes*_*tor 0 c# linq

我有下表(表A):

ID | Data  |
1  | Data1 |
2  | Data2 |
3  | Data3 |
4  | Data4 |
Run Code Online (Sandbox Code Playgroud)

我的表B有1行:

DummyID | Dummy  |
1       | Dummy1 |
Run Code Online (Sandbox Code Playgroud)

我必须以下列方式将表A与表B连接起来:

ID | Data  |DummyID | Dummy  |
1  | Data1 |1       | Dummy1 |
2  | Data2 |1       | Dummy1 |
3  | Data3 |1       | Dummy1 |
4  | Data4 |1       | Dummy1 |
Run Code Online (Sandbox Code Playgroud)

显然我不能在on条款中使用任何ID .

from item in context.TableA
join dummy in context.TableB on ? = ?
select new 
 {
  RowA=item,
  Dummy=dummy
 }
Run Code Online (Sandbox Code Playgroud)

我怎么能用LINQ做到这一点?

juh*_*arr 6

这是一个交叉连接,您可以通过以下方式通过Linq获得

from item in context.TableA
from dummy in context.TableB
select new 
 {
  RowA=item,
  Dummy=dummy
 }
Run Code Online (Sandbox Code Playgroud)

或者方法语法中的以下内容

context.TableA.SelectMany(
    item => context.TableB.Select(dummy => new { RowA = item, Dummy = dummy }));
Run Code Online (Sandbox Code Playgroud)

请注意,如果TableB每个都有多行,那么最终会有N次M行,其中N是TableA中的行数,M是TableB中的行数.