using System.Collections.Generic;
private static ContextoFake _contexto;
public static void Main()
_contexto = new ContextoFake();
_contexto.Categoria = new List<Categoria>{
new Categoria { CATEGORIAID = 1, NOME = "Categoria 1" },
new Categoria {CATEGORIAID = 2, NOME = "Categoria 2"}
_contexto.SubCategoria = new List<SubCategoria> {
new SubCategoria{ SUBCATEGORIAID = 1,CATEGORIAID = 1, Nome = "SubCategoria 1" },
new SubCategoria{ SUBCATEGORIAID = 2,CATEGORIAID = 2, Nome = "SubCategoria 2" },
new SubCategoria{ SUBCATEGORIAID = 3,CATEGORIAID = 2, Nome = "SubCategoria 3" },
new SubCategoria{ SUBCATEGORIAID = 4,CATEGORIAID = 1, Nome = "SubCategoria 4" }
var resultado = new Program().Localizar("Categoria 2");
foreach (var item in resultado)
Console.WriteLine("SU.SUBCATEGORIAID = {0}, SU.NOME = {1}, SU.CATEGORIAID = {2}, C.NOME = {3}",item.SubCategoriaId,item.SubCategoriaNome,item.CategoriaId, item.CategoriaNome);
public List<ResultadoParaMinhaDataGrid> Localizar(string valor)
if (valor != string.Empty)
var minhaQuery = from su in _contexto.SubCategoria
join c in _contexto.Categoria on su.CATEGORIAID equals c.CATEGORIAID
where c.NOME.ToUpper().Contains(valor.ToUpper())
select new ResultadoParaMinhaDataGrid { SubCategoriaId = su.SUBCATEGORIAID, SubCategoriaNome = su.Nome, CategoriaId = su.CATEGORIAID, CategoriaNome = c.NOME };
return minhaQuery.ToList();
var minhaQuery = from su in _contexto.SubCategoria
join c in _contexto.Categoria on su.CATEGORIAID equals c.CATEGORIAID
select new ResultadoParaMinhaDataGrid { SubCategoriaId = su.SUBCATEGORIAID, SubCategoriaNome = su.Nome, CategoriaId = su.CATEGORIAID, CategoriaNome = c.NOME };
return minhaQuery.ToList();
public class ResultadoParaMinhaDataGrid
public int SubCategoriaId { get; set; }
public string SubCategoriaNome { get; set; }
public int CategoriaId { get; set; }
public string CategoriaNome { get; set; }
#region Classes para o Mock do Contexto
public class ContextoFake
public List<SubCategoria> SubCategoria { get; set; }
public List<Categoria> Categoria { get; set; }
public class SubCategoria
public int SUBCATEGORIAID { get; set; }
public int CATEGORIAID { get; set; }
public string Nome { get; set; }
public int CATEGORIAID { get; set; }
public string NOME { get; set; }