2012-01-20 23 views
8

đây là mã của tôi ... nhưng tôi cần chọn cột duy nhất để hiển thị trong Datagridview của tôi. Tôi Cần mã để chỉ chọn một số cột .. Ví dụIQueryable C# Chọn

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

} 

Trả lời

10

Nếu bạn chỉ muốn có một số giới hạn các cột và bạn có ý định vượt qua kết quả ra của phương pháp này, đầu tiên khai báo một kiểu dữ liệu cụ để mô tả các yếu tố .

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

Sau đó, bạn có thể sử dụng trong các kiểu trả về cho phương pháp

public List<UsuarioData> Get(...) 

Và cuối cùng, sử dụng các loại trong lựa chọn của bạ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(); 

Và, tất nhiên, người gọi của bạn sẽ nhận được kết quả này (hoặc chỉ sử dụng suy luận kiểu với var).

+0

tôi cố gắng mã này nhưng chọn chương trình cho tôi tất cả các lĩnh vực trong datagridview. http://img59.imageshack.us/img59/9585/aaaabw.jpg và tôi chỉ chọn hai trường .. xin lỗi vì tiếng anh xấu của tôi! – MrZerocaL

1

Vâng có một vài cách bạn có thể làm được điều này, cách dễ nhất:

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

Hoặc bạn có thể tạo ra một lớp và thay mới {} cho lớp và làm điều đó ở cấp lớp dữ liệu.

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

Hãy thử điều này:

(contexto.AsEnumerable() 
select new {usu_Login=r.Field<string>("usu_Login")}).ToList(); 
Các vấn đề liên quan