Pergunta

Alguém já tentou o ActiveRecord Amostra de introdução com C# 3.5? De alguma forma, tenho a sensação de que a amostra está completamente errada ou desatualizada. A configuração XML está simplesmente errada:

<add key="connection.connection_string" value="xxx" />

deveria estar :

<add key="hibernate.connection.connection_string" value="xxx" />

(Se eu entendi a sintaxe da configuração de Nibernato ..)

Estou me perguntando o que estou fazendo de errado. Eu recebo uma exceção "não consegui executar o ExecuteQuery para o usuário" ao ligar para a contagem () no modelo do usuário.

Não faço ideia do que isso pode ser. A fonte do tutorial difere fortemente da fonte da página (principalmente na configuração XML) e é uma amostra VS2003 com sintaxe diferente na maioria das coisas (sem genéricos etc.).

Alguma sugestão? ActiveRecord parece incrível ..

Foi útil?

Solução

(Isso foi muito longo para um post de comentário)

@Tigraine] De seus comentários sobre minha resposta anterior, parece que o erro não está na configuração, mas com uma de suas entidades. A remoção do "hibernato" corrigiu a configuração para que ele o entregue o erro real, o que parece ser que a entidade "post" não é atribuída adequadamente ao ActiveRecord para criar seu mapeamento.

Se você mais adiante no erro que ele fornece, provavelmente terá alguns detalhes sobre o que o "post" falhou.

Algumas coisas comuns incluem:

  • A classe não tem o [ActiveRecord] atributo.
  • Não há propriedade com o [PrimaryKey] atributo.
  • Não há tabela correspondente chamada "post" (ou "postagens" se PluralizeTableNames é verdade").
  • Não há colunas correspondentes para propriedades atribuídas.
  • Suas propriedades atribuídas e métodos públicos não são virtual (Este me mata o tempo todo).

Outras dicas

A parte do 'hibernato' da chave foi removida no Nibernate versão 2.0. Esta versão está correta para o Nibernate 2.0 em diante:

<add key="connection.connection_string" value="xxx" />

EDIT: Vejo que o Quickstart não vem com os binários de Castle e Nibernate. Você deve ter baixado os binários de algum lugar; Seria útil se você pudesse fornecer o número da versão do seu arquivo Nibernate.dll.

Confusamente, pelo menos parte do Quickstart foi atualizado para estar atual com o Nibernate (NH) 2.0, mas o mais recente lançamento de castelo 'adequado' ainda é o 1.0 RC3 (quase um ano de idade), que não inclui o NH 2.0.

Você pode percorrer dois caminhos. Você pode continuar usando o Castle RC3 e, neste caso, precisará adicionar o prefixo 'Hibernate' às suas entradas de configuração. Ou você pode baixar um construir do castelo do porta -malas, que deve estar correndo contra o NH 2.0. O problema com a última abordagem é que algumas das outras mudanças de ruptura introduzidas no NH 2.0 podem não ser corrigidas no início rápido.

Exclua o "hibernate."Parte para todas as entradas de configuração. Seu primeiro exemplo é o correto.

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