Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 553722
            [titulo] => Como escrever a seguinte consulta em expressão lambda?
            [dataCadastro] => DateTime Object
                (
                    [date] => 2016-05-10 19:01:23
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 418027
            [status] => A
            [isExample] => 
            [NomeUsuario] => Jothaz
            [Apelido] => 
            [Foto] => 418027_20150313165406.jpg
            [Conteudo] => [code]
var ListaDeEventos = db.Eventos
.Include("Funcionarios")
.Where(x => x.DataAlteracao >= Ultimos31Dias)//lista dos últimos 30 dias
.OrderBy(x => x.IDFuncionario)
.ToList();

ListaDeEventos = ListaDeEventos.OrderBy(sua-expressao)

[/code]


[code]
var ListaDeEventos = db.Eventos
.Include(f => f.Funcionarios)
.Where(x => x.DataAlteracao >= Ultimos31Dias)//lista dos últimos 30 dias
.OrderBy(x => f.NonFun)
.ToList();
[/code] ) )

Como escrever a seguinte consulta em expressão lambda?

Ricardo
   - 10 mai 2016

Boa tarde,
Preciso exibir os dados de uma tabela em uma view, essa tabela está relacionada com outras duas tabelas, na view eu quero que os dados fiquem em ordenados pelo nome do funcionário.
Na expressão lambda que eu fiz eu consigo exibir os dados, porem não estão em ordem alfabética, pois estou utilizando o IDFuncionario para ordenar a lista.
#Código

public ActionResult Index()
        {
            DateTime Ultimos31Dias = new DateTime();
            Ultimos31Dias = DateTime.Now.AddDays(-31);

            var ListaDeEventos = db.Eventos
                .Include("Funcionarios")
                .Where(x => x.DataAlteracao >= Ultimos31Dias)//lista dos últimos 30 dias
                .OrderBy(x => x.IDFuncionario)
                .ToList();

            return View(ListaDeEventos);
        }


Fiz um select no SQL de como eu gostaria que ficasse, nesse comando faltou relacionar uma tabela, preciso exibir também o tipo do evento da tabela TipoDeEventos (chave IDTipoDeEvento)
#Código
Select    Nome, IDEvento, NovoValor, DataAlteracao
From      Funcionarios Fun
Inner     Join Eventos Eve
On       Eve.IDFuncionario    =  Fun.IDFuncionario
where	 fun.IDFuncionario = eve.IDFuncionario
Order    By Fun.Nome

como eu faço isso em expressão lambda?
Obrigado!

Post mais votado

Jothaz
   - 10 mai 2016

#Código

	var ListaDeEventos = db.Eventos
		.Include("Funcionarios")
		.Where(x => x.DataAlteracao >= Ultimos31Dias)//lista dos últimos 30 dias
		.OrderBy(x => x.IDFuncionario)
		.ToList();
			
	ListaDeEventos = ListaDeEventos.OrderBy(sua-expressao)			
				


#Código
		var ListaDeEventos = db.Eventos
		.Include(f => f.Funcionarios)
		.Where(x => x.DataAlteracao >= Ultimos31Dias)//lista dos últimos 30 dias
		.OrderBy(x => f.NonFun)
		.ToList();

Ricardo
   - 11 mai 2016

Jothaz, bom dia!

Obrigado pela resposta, ajudou bastante mas não funcionou... quando eu coloquei .OrderBy(x => f.Nome) ele marcou erro no f

Eu consegui fazer o que queria, porem estou confuso, o .Include não foi necessário... Quando eu li um livro de MVC 4 o .Include era essencial para eu referenciar outras tabelas no nas minhas consultas, agora estou desenvolvendo em MVC 5 e as consultas funcionam sem o .Include... estranho..

A minha expressão ficou assim:
#Código

var ListaDeEventos = db.Eventos
                //.Include(f => f.Funcionarios)
                .Where(x => x.DataAlteracao >= Ultimos31Dias)//lista dos últimos 30 dias
                .OrderBy(x => x.Funcionarios.Nome)
                .ToList();

            return View(ListaDeEventos);


Note que a linha .Include(f => f.Funcionarios) está comentada e ele está listando corretamente.

O MVC 5 não "precisa" mais do Include? ou algo está errado/estranho na minha aplicação?