假设我有3个表:A(援助,......),B(投标,......)关系(援助,投标,......) 然后我有一个辅助参数,我想从b得到结果。如果使用SQL,则会像
select b.* from B join Relationship on b.bid = Relationship.bid
where relationship.aid = aid_param
如何编写与上述SQL相同结果的linq。 (在这种情况下,外键未正确创建)?
答案 0 :(得分:1)
假设您已经使用设计器将表添加到LINQ数据上下文,并且您在数据库中定义了外键关系,或者在设计器中手动编码了关联,您应该只需引用B表和它的关系属性的EntitySet,按参数过滤,并检查是否有任何匹配。
var relationships = db.B.Any( b => b.Relationships.Where( r => r.aid == aid_param ) );
答案 1 :(得分:0)
var bQuery = from r in MyContext.Relationship
where r.aid == aid_param
select r.B;
如果你没有在模型中设置关系,那么你可以:
var bQuery = from b in myContext.B
where myContext.Relationship
.Any( r => r.aid == aid_param && b.bid == r.bid)
select b;
答案 2 :(得分:0)
var output =
来自b
来自关系
where(b.bid = Relationship.bid,
relationship.aid = aid_param)