2009-08-01 9 views
0

Ich mag eine Tabellenzeile aktualisieren und ich habe einen folgenden CodeSubsonic 3.0.0.5 Migration Row-Update

Leere updatePrimaryPaymentAndSecondaryPaymentSourceTypes()

{

LookUpDetails lookUpDetail = new LookUpDetails();

var repo = neues SimpleRepository ("E2Lending", SimpleRepositoryOptions.RunMigrations);

lookUpDetail = Repo.Single (80);

lookUpDetail.Col1Value = "Mein Girokonto";

Repo.Update (lookupDetail);

}

public class LookUpDetails

{

[SubSonicPrimaryKey] 

public int LookUpDetailId {get; set;} 

public int LookUpGroupId { get; set; } 

public string Code { get; set; } 

public int SortOrder { get; set; } 

public string Col1Value { get; set; } 

[SubSonicNullString] 

public string Col2Value { get; set; } 

[SubSonicNullString] 

public string Col3Value { get; set; } 

[SubSonicNullString] 

public string Col4Value { get; set; } 

[SubSonicNullString] 
public string Col5Value { get; set; } 

public DateTime CreatedOn { get; set; } 

public string CreatedBy { get; set; } 

public DateTime ModifiedOn { get; set; } 

public string ModifiedBy { get; set; } 

public Boolean IsActive { get; set; } 

}

Wenn ich ausführen dann repo.Update (lookUpDetail); zeigt mir Null Referenz Ausnahme. Können Sie mir bitte sagen, wie ich einen einzelnen Datensatz in einer Tabelle aktualisieren kann?

Grüße

Antwort

0

Ich habe das gleiche Problem mit sehr einfachen Modellklasse:

class Person 
{ 
    public long ID {get;set;} 
    public string Name { get; set;} 
} 

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Edit(int id, FormCollection collection) { 
    Person toUpdate = Repository.All<Person>().Single(p => p.ID == id); 
    TryUpdateModel(toUpdate, collection.ToValueProvider()); 
    Repository.Update(toUpdate); //throws nullreferenceexception 
    return RedirectToAction("Index"); 
} 

Stack-Trace:

bei SubSonic.Query.Update.GetCommand()

bei SubSonic.Query.Update.Execute()

bei SubSonic.Repository.Simpl eRepository.Update [T] (T Artikel)

bei MvcApplication1.Controllers.PersonController.Edit (Int32 id, Formcollection collection)

in H: \ ... \ Controllers PersonController.cs \: Zeile 71"

Meine Konfiguration: SubSonic 3, SQLite, leere Datenbank

1

Dieses Problem kann jetzt im Kofferraum befestigt werden, aber das Update here dokumentiert wenn Sie lieber können Sie den aktuellen Quellcode flicken.

0

Ich lief auch in dieses Problem und ich konnte die neueste SubSonic-Quelle herunterladen und das Problem wurde bereits behoben. Öffnen Sie einfach das SubSonic.Core-Projekt, erstellen Sie einen Build und ersetzen Sie den Verweis Ihres Projekts auf SubSonic.Core.

Herunterladen Neueste Quelle http://github.com/subsonic/SubSonic-3.0

Boom - Repository-Update wieder funktioniert!