我有很多关系,但由于我使用EF,我没有联结表,因为它没有主键。
通常,如果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 fluent映射创建了导航属性。但是使用导航属性获取数据,性能是否更差?
编辑:我正在使用POCO。
由于
答案 0 :(得分:1)
据我所知,您的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; }
}