2016-07-20 16 views
0

ich diese Abfrage in LINQ konvertieren möchten oder mit Lambda-Ausdruckkonvertieren SQL LINQ-Abfrage

ALTER procedure [dbo].[grid_data] 
    @fromdate datetime, 
    @todate datetime, 
    @region varchar(50) 
    as 
    Select D.ID as ID, D.OName, 
    (Select Count(*) from tblve WHERE MID = D.ID and Vme <> ''), 
    D.Mil,D.Speed 
    from tblRe M 
    inner join tblReg D 
    On M.RID = D.RID 

Ich versuche, diese Methode aber diese Show Fehler auf Zählung

[WebMethod] 
    public static string search_data(DateTime fromdate, DateTime todate, string region) 
    { 
     try 
     { 
      T1 ts = new T1(); 
      var query = (from M in ts.tblRe 
      join D in ts.tblReg on M.RID equals D.RID 
      where 
      M.Region == region 
      && M.StartDate <= fromdate 
      && M.EndDate >= todate 
      select new {      
      D.ID, 
      D.OName, 
      Count = ts.tblve.Where(x => x.MID == D.ID && x.Vme != 
      '').Count() 
      D.Mil, 
      D.Speed 
     }).ToList(); 

Dies zeigt ERROR Leere Zeichen wörtlich auf dieser Linie '')

Antwort

2

Was ist mit dieser Lösung:

var query = from M in context.tblRe 
       join D in context.tblReg on M.RID equals D.RID 
       where M.StartDate <= fromdate && M.EndDate >= todate && M.region == region 
       select new {      
        D.ID, 
        D.OName, 
        Count = context.tblve.Where(x => x.MID == D.ID && x.Vme != "").Count() 
        D.Mil, 
        D.Speed 
       }; 
+0

was ist wo? Es gibt auch Parameter überprüfen Update bitte –

+0

wie Parameter übergeben –

+0

Zuerst ist es jetzt nicht einfache Abfrage, sondern Verfahren; Zweitens verwenden Sie keine Parameter in Ihrer Abfrage, dritte linq-to-sql unterstützt keine Prozeduren. –