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?

Foi útil?

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:

  1. LINQ to SQL Discriminator Coluna Exemplo - Herança Mapeamento tutorial
  2. 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:

LINQ herança

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top