Pergunta

Eu olhei para várias perguntas semelhantes, mas não vi nenhuma que se aplique diretamente a mim, então me perdoe se isso for uma duplicata.

Para a separação de preocupações, estou tentando mapear meus objetos de negócios com lógica para os objetos de dados LINQ para SQL no arquivo .dbml (razoavelmente novo neste BTW). O que parece, porém, é que meus objetos de negócios precisarão saber sobre os objetos LINQ2SQL correspondentes. Eu li Este artigo sobre tentar usar os pocos usando um arquivo de mapeamento XML, e parece que é semelhante ao que eu quero, exceto que não tenho um mapeamento individual de tabelas para aulas por causa de um muitos para muitos Relacionamento para o qual eu precisava criar uma tabela extra.

Eu posso encapsular o acesso de dados na minha lógica de negócios muito bem, de modo que o código que usa meus objetos de negócios não precise saber nada sobre o banco de dados que é bom, mas a camada de negócios ainda está fortemente acoplada à camada de acesso a dados de modo que que Não pude trocar o DAL sem alterar meus objetos de camada de negócios ou criar novos (que implementam as mesmas interfaces) para diferentes provedores de dados.

Como posso desacoplar essas camadas?

Foi útil?

Solução

Não tenho certeza se você está ligado ao LINQ à SQL de alguma forma, mas o que você está tentando realizar é praticamente o padrão no Nibernate. Eu recomendo dar uma olhada no Nibernate para ver se seria mais fácil mudar do que combater o LINQ para o SQL.

Descobri que lutar contra uma ferramenta é quase sempre uma má ideia.

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