2009-08-25 11 views
0

Immer wenn ich versuche, ein einfaches Repository zu verwenden, um einfach einen Datensatz zu aktualisieren, bekomme ich eine Objektreferenz nicht auf eine Instanz eines Objektfehlers gesetzt. Ich vermute, dass ich etwas falsch mache, kann jemand ein Problem mit den unteren Zeilen des Codes zum Speichern von Daten zu Unterschall sehen?Subsonic: Einfaches Repository - Update Crash

Ich benutze. Net 3.5, SQL Server 2008 und Subsonic 3.0.

Danke für jede Hilfe.

 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); 

Antwort

2

Meine Vermutung ist, dass ein neues Objekt aus irgendeinem Grund auf der Linie, Sie bekommen:

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

Also, wenn Sie versuchen, und aktualisieren Sie es SubSonic eine Ausnahme wirft, weil simpleReloaded nicht über ein Primärschlüssel Versuchen Sie, den Wert von simple.ID prüft und dann sehen, ob simpleReloaded tatsächlich gefüllt ist oder ob Sie gerade ein neues SimpleObject bekommen

EDIT: Sieht aus wie dies ein Fehler versuchen, ist von github die neueste Version ziehen

+0

Vielen Dank für die Antwort zu extrahieren, das tue ich nicht dünn k dass die ID-Werte für beide Objekte gleich sind: Wert von simple.ID: 2 Wert von simpleReloaded.ID = 2 Irgendwelche anderen Ideen? – gmn

+0

Was passiert, wenn Sie den Wert von TestString auf einfach ändern und dann aktualisieren? Sie können auch weitere Details über Ihren Absturz, Stack-Trace und den SQL-Wert, der durch das Update erzeugt wird, am nützlichsten machen. –

+0

Können Sie auch bestätigen, dass Sie die neueste Version von SubSonic - 3.0.0.3 verwenden? Es gibt einige Fehler in 3.0, die behoben wurden. –