Pergunta

Você deveria usar um modelo de dados ADO.NET Entity para cada tabela? Ou um para toda a sua base de dados onde os relacionamentos também são encaminhadas, etc ...

Foi útil?

Solução

Faça-o para todo o banco de dados. Se você cometer um modelo de dados para cada mesa que você não terá o benefício de navegar as relações.

Se você estiver usando o controle de origem checkout / merge como Subversion, estar ciente de que os munges desenhador do XML, na medida em que as lutas Subversion para fundi-lo. Neste caso, você geralmente tem que regenerar todo o modelo de cada vez ou mesclar com a mão.

Outras dicas

Eu uso um modelo de dados de entidade para tabelas relacionadas. Dependendo do tamanho de seu banco de dados que eu só iria criar um modelo se houvesse menos de cerca de 20 ou 25 mesas. É um pouco caro para criar modelos individuais para cada mesa porque cada modelo tem um objeto EntityConnection a ser criado.

Eu acho que posso manter os modelos razoavelmente bem se eu tiver entre 5 e 15 mesas. Meu principal fator decisivo é a funcionalidade. aplicações de engenharia de construção I assim, por exemplo eu tenho cerca de 6 mesas de componentes de aço estrutural. Eles estão todos em um modelo. Eles compartilham atributos de engenharia comum, por isso é mais fácil de reutilização de código que é específico para manipular esses atributos.

Isso significa que eu posso instanciar o modelo, criar os objetos, manipular / organizar esses objetos dentro de um arquivo de código comum. Todas as alterações que precisam ser propogated de volta para o banco de dados pode ser feito de forma bastante eficiente.

A linha inferior é determinando-se sua necessidade e frequência de uso para os objetos subjacentes. Se o seu vai ser constantemente atualizando uma ou duas mesas, então não faz sentido ter 30 outras tabelas não-relacionados dentro desse modelo. Neste cenário, onde um pequeno número de mesas estão sendo usados ??com freqüência, pode fazer sentido para criar coleções desses objetos, manipular as coleções e atualizar o banco de dados em momentos apropriados.

maipulation memória é muito mais barato para executar, em seguida, o disco I / O. Esta é apenas a minha opinião sobre o quadro e não significa que eu sou um especialista nisso.

Um para toda a sua base de dados ou, pelo menos, as tabelas que você estará usando ...

Se você tem uma grande quantidade de tabelas que você pode dividi-las em esquemas ou alguma outra forma categórica, mas eu diria que a idéia nunca foi modelo de dados por tabela ...

Gostaria de projetar um modelo conceitual / object dos dados independentemente do esquema de banco de dados e, em seguida, criar o mapeamento que melhor se relaciona o modelo conceitual para o esquema do banco de dados. Ele pode usar a maioria, se não todas as mesas. Se você quer um mapeamento um-para-um para tabelas, você pode querer considerar LINQ to SQL em vez disso, uma vez que é mais fácil trabalhar com.

Além das respostas acima, tenha em mente que um modelo EF é realmente em um nível conceitual. Ela não precisa ter nada a ver com a estrutura do seu banco de dados, e certamente não precisa representar todo o banco de dados.

Eu acho que se você está tendo grande banco de dados, então você precisa categorizar as tabelas de banco de dados. Mas você tem que criar uma classe para cada tabela que é uma exigência principal da estrutura de entidade ado.net.

Quando você atualizar banco de dados, então você pode fazer com o modelo de dados de atualização.

Primeiro projetar seu banco de dados, em seguida, criar modelo de entidade ado.net.

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