Herança no EDM
Pessoal minha dúvida é ao inserir dados em tabelas que estão em herança no EDM, o exemplo abaixo é fictício usado apenas para tentar explicar que vocês entendam o problema que temos.
Modelo DB
Modelo EDM
Preciso de uma maneira para inserir os dados do paciente numa rotina e os dados clinicos em outra rotina. Para inserir os dados do paciente consegui fazer sem problemas como segue codigo abaixo:
ModeloModel.ModeloContainer db = new ModeloModel.ModeloContainer();
ModeloModel.Paciente paciente = new ModeloModel.Paciente();
paciente.IdPessoa = 1;
paciente.Nome = “JOSE”;
paciente.Convenio = “UNIMED”;
paciente.NumeroCarteira = “22222222222”;
db.AddToPessoa(paciente);
db.SaveChanges();
Agora preciso inserir os dados na tabela Clinico em outra rotina não na mesma, lembrando que estou usando herança. As formas que tentei aqui todas deram erro.
Aguardo uma resposta o mais breve possivel
Atenciosamente,
Julio
Nefrodata Sistemas
Nefrodata Ltda
Curtidas 0
Respostas
Fabio Mans
08/04/2009
Não entendi, você não pode utilizar um método igual utilizou para incluir o Paciente?
Não está faltando uma tabela para incluir as doenças por pacientes?
Fabio
GOSTEI 0
Nefrodata Ltda
08/04/2009
Ola Fabio, tenho uma classe Pessoa que representa uma tabela do banco de dados chamada Pessoa, tenho uma classe chamada Paciente que herda a classe Pessoa, e esta classe Pessoa representa uma tabela do meu banco de dados chamado Paciente. Até aqui esta tudo ok não tenho problemas, eu tenho um formulário onde eu informo os dados que serão gravados nas tabelas Pessoa e Paciente.
Agora tenho tambem uma outra classe chamada Clinico que herda de Paciente, que representa uma tabela do meu banco de dados chamado Clinico. O que eu quero fazer agora inserir dados na minha tabela Clinico.
Para inserir os dados do Paciente eu faço o seguinte
ModeloModel.Paciente paciente = new ModeloModel.Paciente();
paciente.IdPessoa = 1;
paciente.Nome = "xxxxxxx";
paciente.Convenio = "UNIMED";
db.AddToPessoa(paciente);
db.SaveChanges();
Como eu insiro os dados clinicos agora??? Eu não posso fazer o seguinte:
ModeloModel.Clinico clinico = new ModeloModel.Clinico();
clinico.Etiologia = "xxxxx";
db.AddToPessoa(clinico);
db.SaveChanges();
Porque quando eu instancia uma classe Clinico vem toda a estrutura das classes herdadas (Pessoa e Paciente). Porém eu quero inserir apenas os dados da classe Clinico.
Essa classe Paciente meu gera outras heranças, só para informação de vocês.
Aguardo uma resposta o mais breve possível
Julio
Nefrodata Sistemas
GOSTEI 0
Fabio Mans
08/04/2009
Primeiro explique porque Clínico herda de Paciente?
Não entendi sua modelagem. O que você tem não é?
Pessoa -->> Paciente Doenças - 1-Bronquite, 2-Tosse, 3-Acne, 4-Febre
Ai ficaria ID - 1 NOME - CARLOS DOENÇA - 2
Ou seja o Carlos que herda de Pessoa passou em consulta e o médico detectou que ele tem tosse e registrou no sistema o código da doença que no seu caso está chamando de clínico, código 2.
Não é isso? Se não for, explique o que tem a ver Clínico com Paciente.
Fabio
GOSTEI 0
Nefrodata Ltda
08/04/2009
Fabio vou mudar o exemplo:
Tabela1 <---- Tabela2 <---- Tabela3
Tenho uma classe Tabela2 que herda de Tabela1, e uma classe Tabela3 que herda da Tabela2.
Em uma rotina vou inserir os dados na Tabela1 e Tabela2.
Em uma outra rotina quero inserir os dados na Tabela3.
Tem como eu fazer isso?? Veja que Tabela2 e Tabela1 eu insiro de uma só vez. Porém a Tabela3 é outra rotina que eu irei inserir dados nela.
Aguardo uma resposta o mais breve possivel.
Julio
Nefrodata Sistemas
GOSTEI 0
Fabio Mans
08/04/2009
Você não consegue inserir na Tabela 3 do mesmo modo que faz na 1 e 2?
GOSTEI 0
Devmedia
08/04/2009
Senhor,
a resposta do consultor foi suficiente para solucionar sua dúvida? Podemos encerrar o chamado?
a resposta do consultor foi suficiente para solucionar sua dúvida? Podemos encerrar o chamado?
GOSTEI 0
Devmedia
08/04/2009
Por falta de retorno do cliente, o chamado foi colocado como fechado. Caso ainda haja dúvida sobre o assunto do chamado, por favor, poste a mesma nesse mesmo chamado que o consultor atenderá.
GOSTEI 0