如何使用Entity Framework 6按行号进行内部联接

时间:2017-04-13 01:59:31

标签: c# mysql sql-server entity-framework linq

两张桌子:

表A有以下数据:

Type1 A
Type1 B
Type1 C
Type1 D

表B有以下数据:

Type2 X
Type2 Y
Type2 U
Type2 V

我想获得以下输出:

new { A, X }
new { B, Y }
new { C, U }
new { D, V }

使用Entity Framework可以实现吗?我现在面临的问题是有8个不同的实体表,每个表都代表一种类型。该应用程序有一个索引页面,我们希望在索引页面上显示每个表的6个项目。我们当然可以一个接一个地做到这一点,但这会使DB达到8次,这可能效率不高。使用EF 6解决此类问题的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

试试这个:

var AX = db.tableA 
.Join( 
tableB, 
foo1 => foo1.A, 
foo2 => foo2.X, 
(foo1, foo2) => new { foo1, foo2}
.ToList()



var BY = db.tableA 
    .Join( 
    tableB, 
    foo1 => foo1.B, 
    foo2 => foo2.Y, 
    (foo1, foo2) => new { foo1, foo2}
    .ToList()

  var CU = db.tableA 
    .Join( 
    tableB, 
    foo1 => foo1.C, 
    foo2 => foo2.U, 
    (foo1, foo2) => new { foo1, foo2}
    .ToList()

  var DV = db.tableA 
    .Join( 
    tableB, 
    foo1 => foo1.D, 
    foo2 => foo2.V, 
    (foo1, foo2) => new { foo1, foo2}
    .ToList()

答案 1 :(得分:0)

如果您使用 EF ,那么您的所有表格中都可能包含 #contact-form{ .border(); } PK 。如果您从未从这些表中删除位于其他行之间的分隔行,则可以使用 Id 列进行连接条件。您可以使用相同的方式将此示例简单地扩展到所需数量的表。

int