Pergunta

Eu quero usar SubSonic (2.2) em um aplicativo que estou construindo, porque eu como sua simplicidade e ele lida com qualquer tipo de consulta que pode prever a necessidade. Ao mesmo tempo, eu quero manter as camadas superiores da minha aplicação dissociados os Tipos Subsonic. Quero voltar a apenas Plain Old C # Objetos e também passar em Poços de ser salvo.

Mas aqui está o problema: Eu quero que meus POCOs ter preguiçoso carregado propriedades para coleções criança e os pais objetos com base nas relações FK. Eu acho que eu preciso para colocar alguma forma um objeto Subsonic SQLQuery em um membro privado no meu POCO e uso que internamente no getter para uma propriedade carregado preguiçoso.

Todas as idéias sobre como implementar isso especificamente com SubSonic? Alguém já fez isso antes?

Eu reconheço que a próxima versão principal do SubSonic vai fazer isso fora da caixa, mas que parece ser pelo menos alguns meses de distância.

Foi útil?

Solução 4

Não foi possível sempre descobrir uma boa maneira de fazer isso. Subsonic 3 está olhando muito agradável e resolveria o problema, mas nesse meio tempo nós apenas foi com NHibernate .

Outras dicas

Eu uso o RepositoryRecord em SubSonic que é "principalmente" poco. Então eu faço parciais para essas classes que carregam a outra classe quando uma propriedade é selecionado.

Partial Public Class Book

Private _Author as Database.Author 
Property Author() as Database.Author
  Get
     If _Author is nothing then
       ' Load the author class here.
     End if
     return _Author
  End get
  Set
     ....
  End Set
End Property
End Class

Você pode usar o atributo:

tableBaseClass = "RepositoryRecord"

Eu tenho medo que eu não sei como este processa o carregamento preguiçoso embora. Você pode ver post de Rob Conery sobre o assunto para mais detalhes.

O que você quer não está na versão 2.x. Você pode ser capaz de obter a maior parte do caminho até lá, editando os modelos (eu tenho exemplos de propriedades lazy-carregados no meu blogue ). Outra opção é construir seus pocos em seguida, construir aulas para mapear a partir do SubSonic gerado classes e consultas para o seu modelo.

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