2016-07-20 4 views
0

я хочу, чтобы преобразовать этот запрос в LINQ или лямбда-выраженияпреобразования SQL в LINQ запрос

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 

я попробовать этот метод, но это шоу ошибку на кол

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

ЭТО ШОУ ERROR Пусто символ Литерал на этой линии '')

ответ

2

О данном решении:

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

о чем? есть также проверка проверки параметров, пожалуйста, –

+0

как передать параметры –

+0

Во-первых, теперь это не простой запрос, а процедура; во-вторых, вы не используете параметры внутри вашего запроса, третий linq-to-sql не поддерживает процедуры. –