0

C# プロジェクトで DynamicLinq を使用しています。

「order by」、「skip」などを使用して単純な選択を行うと、完全に機能します。

しかし、resona に参加すると単純なエラーが発生します。

Error   3   Instance argument: cannot convert from 'int?' to 'System.Linq.IQueryable'   J:\C#\ERP\ERP\Helpers\ListagemPadrao.cs 23  25  ERP

Error   2   'int?' does not contain a definition for 'OrderBy' and the best extension method overload 'System.Linq.Dynamic.DynamicQueryable.OrderBy(System.Linq.IQueryable, string, params object[])' has some invalid arguments    J:\C#\ERP\ERP\Helpers\ListagemPadrao.cs 23  25  ERP

SQL作業:

var lista =
  from a in db.Usuario.AsQueryable()
      .OrderBy(aOrderna + " " + aOrdenaTipo)
      .Skip(aIniciarNoRegistro)
      .Take(aQtdeRegistro)                    
      select new
      {
          a.UsuarioID,
          a.Nome,
          a.Login,
          a.Email
      };   

SQL が機能しない:

var lista =
  from a in db.Usuario.AsQueryable()
  join b in db.UsuarioAcesso.AsQueryable() on a.UsuarioID equals b.UsuarioID 
      .OrderBy(aOrderna + " " + aOrdenaTipo)
      .Skip(aIniciarNoRegistro)
      .Take(aQtdeRegistro)                    
      select new
      {
          a.UsuarioID,
          a.Nome,
          a.Login,
          a.Email
      };
4

2 に答える 2

0

問題の解決策は次のとおりです。

var lista =
  (from a in db.Usuario.AsQueryable()
  join b in db.UsuarioAcesso.AsQueryable() on a.UsuarioID equals b.UsuarioID   
  select new
  {
      a.UsuarioID,
      a.Nome,
      a.Login,
      a.Email
  })
  .OrderBy(aOrderna + " " + aOrdenaTipo)
  .Skip(aIniciarNoRegistro)
  .Take(aQtdeRegistro);

しかし、なぜそれがうまくいくのか理解できません....ヘルプからのtks

于 2013-04-25T16:41:39.437 に答える