【问题标题】:Select inside of Select-New with Linq-To-Sql使用 Linq-To-Sql 在 Select-New 中选择
【发布时间】:2020-08-20 14:09:28
【问题描述】:

我有一个绑定到 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())
                                     });

select-new 中装订的“来自...”的数据不是我期望的。

谁能告诉我如何让它运行?

【问题讨论】:

    标签: gridview linq-to-sql devexpress


    【解决方案1】:

    在测试了这个问题之后,我明白了:

    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())
                                         });
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多