I have a method which returns an IEnumerable of some custom type.
public IEnumerable<_Persona> RegresaBusquedaPersona(string nombres)
{
return context.personas.Where(x => x.Nombres.Contains(nombres) ||
x.ApellidoP.Contains(nombres) ||
x.ApellidoM.Contains(nombres))
.Select(x => new _Persona
{
Id = x.IDPersona,
Nombres = x.Nombres,
ApellidoP = x.ApellidoP,
ApellidoM = x.ApellidoM,
FechaNacimiento = x.FechaNacimiento
});
}
Even when _Persona has some other properties I just want to return the properties chosen in the method.
The problem is that when I fill my DataView with results, properties that aren't set they are being displayed and I don't want this, so I manually make these columns not visible.
public void LLenarDataView(IEnumerable<_Persona> personas)
{
_listaPersonas.DataSource = personas;
_listaPersonas.Columns["Sexo"].Visible = false;
_listaPersonas.Columns["Rfc"].Visible = false;
_listaPersonas.Columns["Curp"].Visible = false;
_listaPersonas.Columns["EstadoCivil"].Visible = false;
_listaPersonas.Columns["Direccion"].Visible = false;
_listaPersonas.Columns["Cp"].Visible = false;
_listaPersonas.Columns["Delegacion"].Visible = false;
_listaPersonas.Columns["Email"].Visible = false;
_listaPersonas.Columns["Telefono"].Visible = false;
_listaPersonas.Columns["Celular"].Visible = false;
_listaPersonas.Columns["Empresa"].Visible = false;
_listaPersonas.AutoResizeColumns();
}
Is there a simpler way of doing the same?