Pergunta

Sempre que tento usar um repositório simples para simplesmente atualizar um registro, recebo uma referência de objeto não definida como uma instância de um erro de objeto. Eu suspeito que estou fazendo algo incorreto, alguém pode ver um problema com as linhas de código abaixo para salvar dados para subsônico?

Estou usando .NET 3.5, SQL Server 2008 e Subsonic 3.0.

Obrigado por qualquer ajuda.

        SimpleRepository repo = new SimpleRepository("Test", SimpleRepositoryOptions.RunMigrations);

        //Add the test object
        SimpleObject simple = new SimpleObject();
        simple.TestString = "Test";
        repo.Add(simple);

        Console.WriteLine(simple.TestString);

        //Reload the object and update it
        SimpleObject simpleReloaded = repo.Single<SimpleObject>(simple.ID);
        simpleReloaded.TestString = "Editted";
        repo.Update(simpleReloaded);//This line seems to crash repeatedly

        Console.WriteLine(repo.Single<SimpleObject>(simple.ID).TestString);
Foi útil?

Solução

Meu palpite é que, por algum motivo, você está recebendo um novo objeto na linha:

SimpleObject simpleReloaded = repo.Single<SimpleObject>(simple.ID);

Portanto, quando você tenta atualizá -lo, o subsônico está lançando uma exceção porque o SimpleReLoaded não tem uma chave primária. Tente verificar o valor de simples.id e depois veja se o simples maiúsculo está realmente preenchido ou se você está apenas recebendo um novo SimpleObject

Editar: Parece que este é um bug, tente puxar a versão mais recente de Github

Outras dicas

Obtenha a construção diária aqui, para resolver seu problema (como Adam disse acima):

http://github.com/subsonic/subsonic-3.0/tree/master

Você precisa compilar para extrair o subsônico.core.dll

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