LinQ ORM Data Objects e Herança
-
05-07-2019 - |
Pergunta
Estou pensando em como fazer isso, mas eu tenho várias formas diferentes de dados no meu banco de dados, artigos, NewsItems, etc.
Eles todos têm algo em comum, todos eles têm IDs (no DB que está nomeado ArticleID, newsid etc.)
Todos eles têm uma Título
Todos eles têm bodyText .
Eles todos têm um Status
Todos eles têm uma DateAdded
O que eu gostaria de fazer é herança de classe padrão.
Eu gostaria de um Master Class (eu não preciso escrever isso para o banco de dados) chamado Conteúdo com campos como:
- ID
- Título
- Legenda
- bodyText
- Estado
- AddedDate
Eu não tenho certeza como eu posso fazer isso com o ORM. Por que eu quero isso é porque então eu posso passar uma lista de conteúdo para o meu UserControl que é responsável por torná-la. Ele só vai precisar da informação que é comum a todos os objetos.
Isto é mesmo possível?
Solução
Isto é o que Interfaces são para. Tem cada classe implementar uma interface iContent que contém o título, bodyText, estado e propriedades DateAdded. Agora você pode passar em torno de uma coleção (List<IContent>
) em torno de que poderia containt diferentes tipos de conteúdo.
Se você estiver usando LinqToSql você pode criar arquivos de classe parcial para ter as aulas Autogenerated implementar a interface que deseja.
public partial class SomeContent : IContent
Outras dicas
Eu não tenho certeza se você está falando sobre LINQ to SQL, mas existem alguns recursos on-line sobre como criar herança com ele:
- LINQ to SQL Discriminator Coluna Exemplo - Herança Mapeamento tutorial
- Inheritance em LINQ para SQL Screencast
... e muito mais.
HTH
Eu encontrei uma página que parece que tem algo ao longo das linhas do que eu estou procurando (O último post) ... mas eu não tenho certeza sobre como usar objetos fracamente digitados: