IQueryable C#选择

这是我的代码……但我需要只选择列才能在我的Datagridview中显示。 我需要代码只选择一些列..例子

Select{t => t.usu_Login, t => t.usu_Login} public List Get(FilterDefinition filter) { var contexto = new indNET_Entities(); IQueryable Consulta = contexto.tb_usuario.AsQueryable() .Where(t => t.usu_Ativo == 1) .OrderBy(t => t.usu_Login); return Consulta.ToList(); } 

如果您只想要有限数量的列并且打算将结果传递给方法,请首先声明一个具体类型来描述元素。

 public class UsuarioData { public string UsuLogin { get; set; } // or whatever public string UsuName { get; set; } // or whatever } 

然后,您可以在方法的返回类型中使用它

 public List Get(...) 

最后,使用您选择的类型。

 var consulta = contexto.tb_usuario.Where(whatever).OrderBy(whatever) .Select(t => new UsuarioData { UsuLogin = t.usu_login, UsuName = t.usu_name } ); return consulta.ToList(); 

当然,您的调用者应该期望得到这个结果(或者只使用var类型推断)。

  IQueryable Consulta = contexto.tb_usuario.AsQueryable() .Where(t => t.usu_Ativo == 1) .OrderBy(t => t.usu_Login) .Select(t => t.ColumnName); 

那么有几种方法可以做到这一点,最简单的方法:

  grdvwHoldings.DataSource = Model.Holdings .Select(x=> new { Name= x.HoldingName, CustomerName = x.FundCustomerName }).ToList(); grdvwHoldings.DataBind(); 

或者,您可以创建一个类并将新的{}替换为类,并在数据层级别执行。

试试这个:

 (contexto.AsEnumerable() select new {usu_Login=r.Field("usu_Login")}).ToList();