LINQ To DataSet
01/09/2014
0
Alguém pode me ajudar a transformar uma stored procedure em linq por favor?
Stored Procedure
LINQ (até o momento)
Gostaria de saber se o caminho é esse mesmo para e como fazer para que a query results retorne um DataTable?
Obrigado
Stored Procedure
SELECT Planilha.num_contrato, Planilha.num_servico, Planilha.escritorio, Planilha.area_telefonica, Planilha.servico_tipo, Planilha.servico_subtipo, Planilha.data_geracao, Planilha.ordem_interna, Planilha.boletim_anormalidade, Planilha.plano_trabalho, Planilha_Um.ata_estudo_num, Planilha_Um.ata_estudo_inicio, Planilha_Um.ata_estudo_fim, Planilha_Um.ata_estudo_comeco, Planilha_Um.ata_estudo_conclusao, Planilha_Dois.medicao_num, Planilha_Dois.medicao_data_criacao, SUM(Planilha_Dois.medicao_valor_pagar) AS Valor_Pagar, Planilha_Dois.medicao_acesso_atividade, Planilha_Dois.medicao_data_classificacao FROM Servico_Arquivo Planilha INNER JOIN Servico_Arquivo_Um Planilha_Um ON Planilha.num_contrato = Planilha_Um.num_contrato AND Planilha.num_servico = Planilha_Um.num_servico INNER JOIN Servico_Arquivo_Dois Planilha_Dois ON Planilha.num_contrato = Planilha_Dois.num_contrato AND Planilha.num_servico = Planilha_Dois.num_servico GROUP BY Planilha.num_contrato, Planilha.num_servico, Planilha.escritorio, Planilha.area_telefonica, Planilha.servico_tipo, Planilha.servico_subtipo, Planilha.data_geracao, Planilha.ordem_interna, Planilha.boletim_anormalidade, Planilha.plano_trabalho, Planilha_Um.ata_estudo_num, Planilha_Um.ata_estudo_inicio, Planilha_Um.ata_estudo_fim, Planilha_Um.ata_estudo_comeco, Planilha_Um.ata_estudo_conclusao, Planilha_Dois.medicao_num, Planilha_Dois.medicao_data_criacao, Planilha_Dois.medicao_acesso_atividade, Planilha_Dois.medicao_data_classificacao UNION SELECT Planilha.num_contrato, Planilha.num_servico, Planilha.escritorio, Planilha.area_telefonica, Planilha.servico_tipo, Planilha.servico_subtipo, Planilha.data_geracao, Planilha.ordem_interna, Planilha.boletim_anormalidade, Planilha.plano_trabalho, Planilha_Um.ata_estudo_num, Planilha_Um.ata_estudo_inicio, Planilha_Um.ata_estudo_fim, Planilha_Um.ata_estudo_comeco, Planilha_Um.ata_estudo_conclusao, NULL AS medicao_num, NULL AS medicao_data_criacao, NULL AS medicao_acesso_atividade, NULL AS medicao_data_classificacao, NULL AS medicao_valor_pagar FROM Servico_Arquivo Planilha INNER JOIN Servico_Arquivo_Um Planilha_Um ON Planilha.num_contrato = Planilha_Um.num_contrato AND Planilha.num_servico = Planilha_Um.num_servico GROUP BY Planilha.num_contrato, Planilha.num_servico, Planilha.escritorio, Planilha.area_telefonica, Planilha.servico_tipo, Planilha.servico_subtipo, Planilha.data_geracao, Planilha.ordem_interna, Planilha.boletim_anormalidade, Planilha.plano_trabalho, Planilha_Um.ata_estudo_num, Planilha_Um.ata_estudo_inicio, Planilha_Um.ata_estudo_fim, Planilha_Um.ata_estudo_comeco, Planilha_Um.ata_estudo_conclusao END
LINQ (até o momento)
var servico = ds.Tables[0].AsEnumerable(); var ata = ds.Tables[1].AsEnumerable(); var medicao = ds.Tables[2].AsEnumerable(); var results = from Servico in servico join Ata in ata.AsEnumerable() on new { num_contrato = (string)Servico["num_contrato"], num_ordem = (string)Servico["num_servico"] } equals new { num_contrato = (string)Ata["num_contrato"], num_ordem = (string)Ata["num_servico"] } join Medicao in medicao.AsEnumerable() on new { num_contrato = (string)Servico["num_contrato"], num_ordem = (string)Servico["num_servico"] } equals new { num_contrato = (string)Medicao["num_contrato"], num_ordem = (string)Medicao["num_servico"] } group new { Servico, Ata, Medicao } by new { num_contrato = Servico.Field<string>("num_contrato"), num_servico = Servico.Field<string>("num_servico"), escritorio = Servico.Field<string>("escritorio"), area_telefonica = Servico.Field<string>("area_telefonica"), servico_tipo = Servico.Field<string>("serivo_tipo"), servico_subtipo = Servico.Field<string>("serivo_subtipo"), data_geracao = Servico.Field<DateTime>("data_geracao").ToString(), ordem_interna = Servico.Field<string>("ordem_interna"), boletim_anormalidade = Servico.Field<string>("boletim_anormalidade"), plano_trabalho = Servico.Field<string>("plano_trabalho"), aep_num = Ata.Field<string>("ata_estudo_num"), aep_inicio = Ata.Field<DateTime>("ata_estudo_inicio").ToString(), aep_fim = Ata.Field<DateTime>("ata_estudo_fim"), aep_comeco = Ata.Field<DateTime>("ata_estudo_comeco"), aep_conclusao = Ata.Field<DateTime>("ata_estudo_conclusao"), medicao_num = Medicao.Field<string>("medicao_num"), medicao_data_criacao = Medicao.Field<DateTime>("medicao_data_criacao").ToString(), medicao_acesso_atividade = Medicao.Field<string>("medicao_acesso_atividade"), medicao_data_classificao = Medicao.Field<DateTime>("medicao_data_classificao") } into GM select new { num_contrato = GM.Key.num_contrato, num_servico = GM.Key.num_servico, escritorio = GM.Key.escritorio, area_telefonica = GM.Key.area_telefonica, serivo_tipo = GM.Key.servico_tipo, serivo_subtipo = GM.Key.servico_subtipo, data_geracao = GM.Key.data_geracao, ordem_interna = GM.Key.ordem_interna, boletim_anormalidade = GM.Key.boletim_anormalidade, plano_trabalho = GM.Key.plano_trabalho, aep_num = GM.Key.aep_num, aep_inicio = GM.Key.aep_inicio, aep_fim = GM.Key.aep_fim, aep_comeco = GM.Key.aep_comeco, aep_conclusao = GM.Key.aep_conclusao, medicao_num = GM.Key.medicao_num, medicao_valor = GM.Sum(valor => valor.Medicao.Field<Decimal>("medicao_valor_pagar")), medicao_data_criacao = GM.Key.medicao_data_criacao, medicao_acesso_atividade = GM.Key.medicao_acesso_atividade, medicao_data_classificao = GM.Key.medicao_data_classificao };
Gostaria de saber se o caminho é esse mesmo para e como fazer para que a query results retorne um DataTable?
Obrigado
Renato Pereira
Curtir tópico
+ 0
Responder
Posts
Clique aqui para fazer login e interagir na Comunidade :)