2012-01-20 24 views
8

'u seç bu benim kodum ... ama Datagridview'ımda görüntülemek için yalnızca sütunu seçmem gerekiyor. Ben sadece sütun sınırlı sayıda istiyorsanız sadece bazı sütunlar .. ömeğiIQueryable C#

Select{t => t.usu_Login, t => t.usu_Login} 

public List<tb_usuario> Get(FilterDefinition filter) 
{ 

    var contexto = new indNET_Entities(); 

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


    return Consulta.ToList(); 

} 

cevap

10

seçmek için kodu Need ve yöntemin dışına geçmesi sonucunu niyetinde, ilk elemanlarını tanımlamak için somut bir türü bildirmek .

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

Sonra yöntemle

public List<UsuarioData> Get(...) 

için dönüş türü bu kullanabilir Ve son olarak, seçme içinde türünü kullanın.

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

return consulta.ToList(); 

Ve tabii ki, sizi arayanlar sonucunda bu olsun bekleyebilirsiniz (ya da sadece var tip çıkarımlar kullanın).

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

Alternatif bir sınıf oluşturmak ve sınıf için {} yeni yerine ve veri katmanı seviyesinde yapabilirdi:

+0


ben bu kodu ama seçme gösterisi bana DataGridView tüm alanları deneyin. http://img59.imageshack.us/img59/9585/aaaabw.jpg ve ben sadece iki alan seçin .. Kötü ingilizce için üzgünüm! – MrZerocaL

1

Eh bu yapabileceğini bir kaç yolu, en kolay yolu yoktur.

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

bu deneyin:

(contexto.AsEnumerable() 
select new {usu_Login=r.Field<string>("usu_Login")}).ToList(); 
İlgili konular