Usuário com melhor resposta
Salvando um objeto que herda de outro no EF

Pergunta
-
Boa noite a todos!
Criei um objeto no EF "Person", mais 2 outros, "Contact", "Customer".
Estes 2 últimos herdam de "Person".
"Person" é uma classe abstrata.Meu problema é que no código abaixo não aparece a opção de salvar um objeto do tipo "Contact" ou "Customer", aparece apenas um método para salvar um objeto do tipo "People" que é o plural de "Person".
Os objetos do Entity Framework ficam em outra camada. Este código encontra-se na camada de UI, e os objetos do EF na camada de Dadosusing (var ctx = new Entities.R2ManagerEntities()) { contactBindingSource.DataSource = ctx.AddToPeople(/*Não aparece AddToContact*/); }
Abraços, Riderman | Analista de sistemas | MCTS http://ridermansb.spaces.live.com/
Respostas
-
Amigo, veja no exemplo abaixo como você faz para retornar somente um tipo atraves do objeto pai da entidade
ExampleContainer c = new ExampleContainer(); Person p1 = new Contact { Nome = "Olavo Oliveira Neto", CPF = "123456789" }; Person p2 = new Contact { Nome = "Olavo Neto", CPF = "123456789" }; Customer c1 = new Customer { Nome = "Customer 1", CNPJ = "123456789" }; Customer c2 = new Customer { Nome = "Customer 2", CNPJ = "123456789" }; c.Person.AddObject(p1); c.Person.AddObject(p2); c.Person.AddObject(c1); c.Person.AddObject(c2); c.SaveChanges(); //Recupera pelo tipo var query = from q in c.Person.OfType<Customer>() select q; foreach (Customer customer in query.ToList()) { string nome = customer.Nome; }
Olavo Oliveira Neto
Se for útil marque como resposta e faça um Developer feliz :)- Marcado como Resposta Riderman de Sousa Barbosa quarta-feira, 8 de dezembro de 2010 13:13
Todas as Respostas
-
-
E como ficaria a busca?
No Context tenho o objeto pai (Person) porem não tenho os objetos filhos (Contact e Customer).
Como posso fazer uma busca utilizando linq em todos os Contacts por exemplo?
Abraços, Riderman | Analista de sistemas | MCTS http://ridermansb.spaces.live.com/ -
Amigo, veja no exemplo abaixo como você faz para retornar somente um tipo atraves do objeto pai da entidade
ExampleContainer c = new ExampleContainer(); Person p1 = new Contact { Nome = "Olavo Oliveira Neto", CPF = "123456789" }; Person p2 = new Contact { Nome = "Olavo Neto", CPF = "123456789" }; Customer c1 = new Customer { Nome = "Customer 1", CNPJ = "123456789" }; Customer c2 = new Customer { Nome = "Customer 2", CNPJ = "123456789" }; c.Person.AddObject(p1); c.Person.AddObject(p2); c.Person.AddObject(c1); c.Person.AddObject(c2); c.SaveChanges(); //Recupera pelo tipo var query = from q in c.Person.OfType<Customer>() select q; foreach (Customer customer in query.ToList()) { string nome = customer.Nome; }
Olavo Oliveira Neto
Se for útil marque como resposta e faça um Developer feliz :)- Marcado como Resposta Riderman de Sousa Barbosa quarta-feira, 8 de dezembro de 2010 13:13
-