如何将 SQL 查询传递给实体框架



>我正在创建一个报告,需要将查询从SQL Server传递到实体框架。

查询为:

SELECT        
contas_receber.id, pessoa.nome, contas_receber.vencimento, 
contas_receber.valor_pago, contas_receber.observacao, pessoa.estado
FROM            
contas_receber 
INNER JOIN
pessoa ON contas_receber.pessoa_id = pessoa.id 
INNER JOIN
classificacoes ON classificacoes.id = pessoa.classificacao_id 
LEFT OUTER JOIN
servicos ON servicos.id = contas_receber.servico_id 
LEFT OUTER JOIN
produto ON produto.id = contas_receber.venda_id
WHERE        
(contas_receber.quitado = 0) 
AND (CAST(contas_receber.vencimento AS date) >= @datavenc1) 
AND (CAST(contas_receber.vencimento AS DATE) <= @datavenc2) 
AND (classificacoes.id = @idclassificacao OR @idclassificacao IS NULL) 
AND (servicos.id = @idservico OR @idservico IS NULL) 
AND (servicos.plano = @tiposervico OR @tiposervico IS NULL) 
AND (produto.id = @idproduto OR @idproduto IS NULL) 
AND (pessoa.status_financeiro = @statusfinanceiro OR @statusfinanceiro IS NULL) 
AND (pessoa.estado = @estado OR @estado IS NULL)
ORDER BY 
contas_receber.vencimento

您将如何留在实体框架中?

到目前为止我做了什么:

var contas = from c in _context.ContasReceber
join p in _context.Pessoas on c.PessoaId equals  p.Id
join cl in _context.Classificacoes on p.ClassificacaoId equals cl.Id
join ps in _context.PlanosServicos on c.ServicoId equals ps.Id
join pr in _context.Produtos on c.IdVenda equals pr.Id
join tp in _context.TiposProdutos on pr.TiposProdutosId equals tp.Id
where c.Vencimento >= Inicial && c.Vencimento <= Final && (cl.Id == classificacoes || classificacoes is null)

课程不同,因为座位不同,但感觉是一样的。我最大的问题是在条件 whare 中,当您必须验证变量是否为 null 时

使用

Database.SqlQuery():

数据库类表示基础数据库,并提供各种方法来处理数据库。Database.SqlQuery(( 方法返回任何类型的值。

示例请参阅此链接

using (var ctx = new SchoolDBEntities())
{
string studentName = ctx.Database.SqlQuery<string>("Select studentname from Student 
where studentid=1").FirstOrDefault();
}

相关内容

  • 没有找到相关文章

最新更新