当进行左连接时,MO对象未填充,我有一个复合键,其中第二个数据表这些键可能不存在,有人可以帮我吗?
var query = (from GrupoInicial in dtGroupInicial.AsEnumerable()
join SomaMedicao in dtSomaMedicao.AsEnumerable() on new { num_contrato = GrupoInicial["num_contrato"], num_servico = GrupoInicial["num_servico"] } equals new { num_contrato = SomaMedicao["num_contrato"], num_servico = SomaMedicao["num_servico"] } into SomaMedicao
from SM in SomaMedicao.DefaultIfEmpty()
join MOrcado in material_orcado.AsEnumerable() on new { num_contrato = GrupoInicial["num_contrato"], num_servico = GrupoInicial["num_servico"] } equals new { num_contrato = MOrcado["num_contrato"], num_servico = MOrcado["num_servico"] } into MaterialOrcado
from MO in MaterialOrcado.DefaultIfEmpty() // Here obeto is not populated
select new
{
num_contrato = GrupoInicial["num_contrato"] != null ? GrupoInicial["num_contrato"].ToString() : null,
num_servico = GrupoInicial["num_servico"] != null ? GrupoInicial["num_servico"].ToString() : null,
escritorio = GrupoInicial["escritorio"] != null ? GrupoInicial["escritorio"].ToString() : null,
area_telefonica = GrupoInicial["area_telefonica"] != null ? GrupoInicial["area_telefonica"].ToString() : null,
servico_tipo = GrupoInicial["servico_tipo"] != null ? GrupoInicial["servico_tipo"].ToString() : null,
servico_subtipo = GrupoInicial["servico_subtipo"] != null ? GrupoInicial["servico_subtipo"].ToString() : null,
data_geracao = GrupoInicial["data_geracao"] != null ? GrupoInicial["data_geracao"].ToString() : null,
ordem_interna = GrupoInicial["ordem_interna"] != null ? GrupoInicial["ordem_interna"].ToString() : null,
boletim_anormalidade = GrupoInicial["boletim_anormalidade"] != null ? GrupoInicial["boletim_anormalidade"].ToString() : null,
plano_trabalho = GrupoInicial["plano_trabalho"] != null ? GrupoInicial["plano_trabalho"].ToString() : null,
aep_num = GrupoInicial["aep_num"] != null ? GrupoInicial["aep_num"].ToString() : null,
aep_inicio = GrupoInicial["aep_inicio"] != null ? GrupoInicial["aep_inicio"].ToString() : null,
aep_fim = GrupoInicial["aep_fim"] != null ? GrupoInicial["aep_fim"].ToString() : null,
aep_comeco = GrupoInicial["aep_comeco"] != null ? GrupoInicial["aep_comeco"].ToString() : null,
aep_conclusao = GrupoInicial["aep_conclusao"] != null ? GrupoInicial["aep_conclusao"].ToString() : null,
medicao_num = SM["medicao_num"] != null ? SM["medicao_num"].ToString() : null,
medicao_data_criacao = GrupoInicial["medicao_data_criacao"] != null ? GrupoInicial["medicao_data_criacao"].ToString() : null,
medicao_valor = SM["medicao_valor"] != null ? SM["medicao_valor"].ToString() : null,
medicao_acesso_atividade = GrupoInicial["medicao_acesso_atividade"] != null ? GrupoInicial["medicao_acesso_atividade"].ToString() : null,
medicao_data_classificacao = GrupoInicial["medicao_data_classificacao"] != null ? GrupoInicial["medicao_data_classificacao"].ToString() : null,
cod_atividade = GrupoInicial["cod_atividade"] != null ? GrupoInicial["cod_atividade"].ToString() : null,
atividade_quant_medida = GrupoInicial["atividade_quant_medida"] != null ? GrupoInicial["atividade_quant_medida"].ToString() : null,
material_orcado = (MO == null) ? "NULL" : MO["material_orcado"].ToString(),
quantidade_orcado = (MO == null) ? "NULL" : MO["quant_material_orcado"].ToString()
});
DataTable dtValorTotal = query.ToDataTable();