Linq:查询加入和等于(变量)不起作用

时间:2018-05-31 19:16:55

标签: vb.net linq

ReportClientDocument.RowsetController.GetSQLStatement

错误出现在变量id_Section中,因为 Linq 不接受来自外部的值,当然在我看来。

这里错误:

foreach (string file in Directory.GetFiles("c:\\projects\\Reports", "*.rpt"))
{
    Console.WriteLine(String.Format("Processing {0}...", file));
    var doc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
    doc.Load(file);

    var controller = doc.ReportClientDocument.RowsetController;

    var groupPath = new CrystalDecisions.ReportAppServer.DataDefModel.GroupPath();
    string temp = String.Empty;
    string commandSql = controller.GetSQLStatement(groupPath, out temp);
    //TODO: do something with commandSql
}

在SQL Query中使用:

Dim ID_Section as Int32 = 10

    Dim Query = From Book1 In db.Book1
    Group Join Section In db.Section On CInt(Book1.ID_Section) Equals Section.ID_section _
     And Section.ID_section Equals (ID_Section)  Into Section_join = Group
    From Section In Section_join.DefaultIfEmpty()
    Select 
      Book1.ID_Book,
      Book1.Name_Book,
      ID_section = Section.ID_section,
      Name_Section = Section.Name_Section

1 个答案:

答案 0 :(得分:0)

Where上使用db.Section使用lambda语法:

Dim Query = From Book1 In db.Book1
            Group Join Section In db.Section.Where(Function(s) s.ID_section = ID_Section)
            On CInt(Book1.ID_Section) Equals Section.ID_section _
            Into Section_join = Group
            From Section In Section_join.DefaultIfEmpty()
            Select
                  Book1.ID_Book,
                  Book1.Name_Book,
                  ID_section = Section.ID_section,
                  Name_Section = Section.Name_Section

或者,您可以将Where应用于Join结果:

Dim Query = From Book1 In db.Book1
            Group Join Section In db.Section
            On CInt(Book1.ID_Section) Equals Section.ID_section _
            Into Section_join = Group
            From Section In Section_join.Where(Function(s) s.ID_section = ID_Section).DefaultIfEmpty()
            Select
                  Book1.ID_Book,
                  Book1.Name_Book,
                  ID_section = Section.ID_section,
                  Name_Section = Section.Name_Section