【发布时间】:2019-07-30 08:44:01
【问题描述】:
我有一个绑定到 LinqToSql-Datasource 的 GridView。
数据源代表 3 个表,我在 Linq-Query 中使用 Join 选择这些表。 这些表格适用于个人、机构和会员 (mitgliedschaft)。
一个人可以拥有属于不同机构的各种会员资格。
My Query 获取所有 Memberships 但表格中仅显示个人或机构的信息,因此表格中有重复的行。
我只希望显示一个人,尽管例如有 3 个成员资格。 在 SQL 中,我会使用左连接或其他方式来完成,但我是 LINQ 新手。
我的查询是:
neonDataContext db = new neonDataContext();
e.KeyExpression = "id";
e.QueryableSource = from mitgliedschaft in db.mitgliedschaft
join person in db.person on mitgliedschaft.person_id equals person.id
join institution in db.institution on mitgliedschaft.verein_id equals institution.id
select new
{
vorname = person.vorname,
nachname = person.nachname,
nameVerein = institution.name,
vereinid = mitgliedschaft.verein_id,
id = mitgliedschaft.id,
verbandsnummer = person.verbandsMitgliedsNummer,
strasse = person.strasse,
plz = person.plz,
ort = person.ort,
geburtsdatum = person.geburtsdatum,
geschlechtid = person.geschlechtid,
statusid = mitgliedschaft.statusid,
bezirk_id = mitgliedschaft.bezirk_id,
kreis_id = mitgliedschaft.kreis_id,
person_id = mitgliedschaft.person_id,
deletedFlag = mitgliedschaft.deletedFlag
};
有人可以告诉我如何对这样的查询进行区分或左连接吗?
【问题讨论】:
-
使用 Groupby。小组应该给出不同的结果。
-
在这种情况下如何使用 group by?
-
在 from : (from ......select new {......}).GroupBy(x => ....) 周围加上括号
-
当我以这种方式分组时,网格告诉我 DataSource 中的某些属性或字段名没有找到
-
该组的属性是您“选择新”中的属性