Linq到sql查询多重继承
这是数据库架构: 我有这个问题,我试图只从同样属于GroupB的Group表中获取数据,所以我使用Linq到sql查询多重继承,linq,linq-to-sql,Linq,Linq To Sql,这是数据库架构: 我有这个问题,我试图只从同样属于GroupB的Group表中获取数据,所以我使用!g、 IdGroup.Equals(a.IdGroup)用于排除GroupA数据。 我检查了GroupA和GroupB ID是否在Group表中,但我仍然从这两个表中获取数据。我怎样才能解决这个问题?对不起,我的英语很差,sql/linq知识也很差 var result = from a in db.GroupA from r in db.Registration
!g、 IdGroup.Equals(a.IdGroup)
用于排除GroupA数据。
我检查了GroupA和GroupB ID是否在Group表中,但我仍然从这两个表中获取数据。我怎样才能解决这个问题?对不起,我的英语很差,sql/linq知识也很差
var result = from a in db.GroupA
from r in db.Registration
join g in db.Group on r.IdGroup equals g.IdGroup
where !g.IdGroup.Equals(a.IdGroup)
select new {
g.Name
};
看着林克,不应该是这样吗
var result = from a in db.GroupA
join r in db.Registration on a.IdGroup equals r.IdGroup
join g in db.Group on r.IdGroup equals g.IdGroup
where !g.IdGroup.Equals(a.IdGroup)
select new {
g.Name
};
我认为您正在寻找的是一个与非IN,IN-SQL等价的查询,也就是说,一个如下所示的查询:
SELECT
g.name
FROM
Group g
WHERE
g.IdGroup NOT IN (SELECT IDGroup FROM GroupA);
var result = from g in db.Group
where !(from a in GroupA select a.IdGroup).Contains(g.IdGroup)
select new {
g.Name
};
那看起来像你想要的吗
在这种情况下,等效LINQ可以如下实现:
SELECT
g.name
FROM
Group g
WHERE
g.IdGroup NOT IN (SELECT IDGroup FROM GroupA);
var result = from g in db.Group
where !(from a in GroupA select a.IdGroup).Contains(g.IdGroup)
select new {
g.Name
};
希望有帮助