如果 entity framework 不映射连接实体,如何在两个实体之间进行连接?

How to make join between two entities, if entity framework doesn't map the junction entity?

我有多对多关系,但由于我使用的是 EF,所以我没有联结 table,因为它没有主键。

通常,如果 TableAB 有一个主键,我会这样做:

var query = from a in db.TableA
            join ab in db.TableAB on
            a.Id equals ab.Id_TableA
            join b in db.TableB on
            ab.Id_TableB equals b.Id
            select { a.Field, b.Field };

但是,由于我没有映射 TableAB,执行 JOIN 的正确方法是什么?

我已经使用 API 流畅的映射创建了导航属性。但是使用navigation properties获取数据,性能是不是变差了,还是?

编辑:我正在使用 POCO。

谢谢

据我了解,您的 TableAB 具有复合主键 [id_TableA、id_TableB]。所以我认为最好对这个键进行正确的映射。它应该看起来像这样:

public class TableAB
{
    [Key]
    [Column(Order = 0)]
    [ForeignKey("TableA")]
    public int id_TableA { get; set; }

    [Key]
    [Column(Order = 1)]
    [ForeignKey("TableB")]
    public int id_TableB{ get; set; }

}