I'm having doubts on Left Outer Join, I'm using MVC 5 C #, Net 4.5.2.
I have the Next Model Supplier
public class fechamentoFornecedor
{
public int FornecedorId { get; set; }
public int Tipo { get; set; }
public string FornecedorNome { get; set; }
public bool IsEntrada { get; set; }
public virtual ICollection<fechamentoMovimentacao> Movimentacoes { get; set; }
}
And the Model Drive
public class fechamentoMovimentacao
{
public int MovimentacaoId { get; set; }
public int FornecedorId { get; set; }
public byte Tipo { get; set; }
public string Texto { get; set; }
public DateTime Data { get; set; }
public decimal Valor { get; set; }
public bool IsEntrada { get; set; }
public virtual fechamentoFornecedor Fornecedor { get; set; }
}
Initially for my logic I tried to do:
public virtual fechamentoFornecedor? Fornecedor
To try to show that it could be Null
, it did not work.
Then I tried to do the Linq
var Linq = (from Movimentacao in db.fechamentoMovimentacoes
join Fornecedor in db.fechamentoFornecedores
on Movimentacao.FornecedorId equals Fornecedor.FornecedorId into output
from Fornecedor in output.DefaultIfEmpty()
where Movimentacao.Data.Year == hoje.Year && Movimentacao.Data.Month == MesNumber && Movimentacao.IsEntrada == IsEntrada
orderby Movimentacao.MovimentacaoId descending
select new MovimentacaoDataTable
{
MovimentacaoId = Movimentacao.MovimentacaoId,
Data = Movimentacao.Data,
Tipo = Movimentacao.Tipo,
FornecedorNome = Fornecedor !=null ? Fornecedor.FornecedorNome : "",
Texto = Movimentacao.Texto,
Valor = Movimentacao.Valor
});
So I understood the main thing here:
from Fornecedor in output.DefaultIfEmpty()
This query does not generate Errors, but does not return results when it has no relation in Provider ( on Movimentacao.FornecedorId equals Fornecedor.FornecedorId
)
In Movimentacao.FornecedorId
, When it does not have values (relation to Vendor), I enter value 0 instead of null
would this be the problem? p>