Subsônico: repositório simples - acidente de atualização
-
19-09-2019 - |
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);
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