如何解决使用Linq-To-Sql在Select-New内部进行选择
我有一个绑定到LinqServerModeDataSource的GridView。在onSelecting-Event中,我手动处理选择。这是几个表的联接,我需要从Select内的另一个表中获取一些信息。
我正在尝试这样:
e.QueryableSource = (from leistungsklasse in db.leistungsklasse
where leistungsklasse.deletedFlag == 0
// INNER-JOINs
join leistungsklassetyp in db.leistungsklassetyp on leistungsklasse.errechneteKlasse_id equals leistungsklassetyp.id
join person in db.person on leistungsklasse.person_id equals person.id
// auswahl eingrenzen und spalten definieren
select new
{
verbandsnummer = person.verbandsMitgliedsNummer,dsa = person.dsaAusweisnummer,leistungsklasseTyp_errechnet_name = leistungsklassetyp.name,leistungsklasseTyp_erechnet_id = leistungsklasse.errechneteKlasse_id,leistungsklasseTyp_beantragt_id = leistungsklasse.beantragteKlasse_id,kennzeichen_errechnet = leistungsklassetyp.kennzeichen,kennzeichen_beantragt = (from leistungsklassetyp in db.leistungsklassetyp where leistungsklassetyp.id == leistungsklasse.beantragteKlasse_id select leistungsklassetyp.kennzeichen),// SNIPPET: SELECT IM SELECT
leistungsklasseTyp_beantragt_name = (from leistungsklassetyp in db.leistungsklassetyp where leistungsklassetyp.id == leistungsklasse.beantragteKlasse_id select leistungsklassetyp.name),leistungsklasse_von = leistungsklasse.von,leistungsklasse_bis = leistungsklasse.bis,leistungsklassetyp_errechnet_von = leistungsklassetyp.von,leistungsklassetyp_errechnet_bis = leistungsklassetyp.bis,leistungsklassetyp_beantragt_von = (from leistungsklassetyp in db.leistungsklassetyp where leistungsklassetyp.id == leistungsklasse.beantragteKlasse_id select leistungsklassetyp.von),leistungsklassetyp_beantragt_bis = (from leistungsklassetyp in db.leistungsklassetyp where leistungsklassetyp.id == leistungsklasse.beantragteKlasse_id select leistungsklassetyp.bis),nurBeantragte = leistungsklassetyp.nurBeantragte,bogen = leistungsklassetyp.bogen,vorname = person.vorname,nachname = person.nachname,geburtsdatum = person.geburtsdatum,id = (leistungsklasse.id.ToString() + "-") + (leistungsklasse.person_id.ToString())
});
新选择内容中装订的“从...”不提供我期望的数据。
有人可以告诉我如何运行它吗?
解决方法
在测试了这个问题之后,我明白了:
e.QueryableSource = (from leistungsklasse in db.leistungsklasse
where leistungsklasse.deletedFlag == 0
// INNER-JOINs
join leistungsklassetyp in db.leistungsklassetyp on leistungsklasse.errechneteKlasse_id equals leistungsklassetyp.id
join person in db.person on leistungsklasse.person_id equals person.id
// auswahl eingrenzen und spalten definieren
select new
{
verbandsnummer = person.verbandsMitgliedsNummer,dsa = person.dsaAusweisnummer,leistungsklasseTyp_errechnet_name = leistungsklassetyp.name,leistungsklasseTyp_erechnet_id = leistungsklasse.errechneteKlasse_id,leistungsklasseTyp_beantragt_id = leistungsklasse.beantragteKlasse_id,kennzeichen_errechnet = leistungsklassetyp.kennzeichen,kennzeichen_beantragt = (from leistungsklassetyp in db.leistungsklassetyp where leistungsklassetyp.id == leistungsklasse.beantragteKlasse_id select new { leistungsklassetyp.kennzeichen }).FirstOrDefault().kennzeichen,// SNIPPET: SELECT IM SELECT
leistungsklasseTyp_beantragt_name = (from leistungsklassetyp in db.leistungsklassetyp where leistungsklassetyp.id == leistungsklasse.beantragteKlasse_id select new { leistungsklassetyp.name }).FirstOrDefault().name,leistungsklasse_von = leistungsklasse.von,leistungsklasse_bis = leistungsklasse.bis,leistungsklassetyp_errechnet_von = leistungsklassetyp.von,leistungsklassetyp_errechnet_bis = leistungsklassetyp.bis,leistungsklassetyp_beantragt_von = (from leistungsklassetyp in db.leistungsklassetyp where leistungsklassetyp.id == leistungsklasse.beantragteKlasse_id select new { leistungsklassetyp.von }).FirstOrDefault().von,leistungsklassetyp_beantragt_bis = (from leistungsklassetyp in db.leistungsklassetyp where leistungsklassetyp.id == leistungsklasse.beantragteKlasse_id select new { leistungsklassetyp.bis }).FirstOrDefault().bis,nurBeantragte = leistungsklassetyp.nurBeantragte,bogen = leistungsklassetyp.bogen,vorname = person.vorname,nachname = person.nachname,geburtsdatum = person.geburtsdatum,id = (leistungsklasse.id.ToString() + "-") + (leistungsklasse.person_id.ToString())
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。