2009-08-01 9 views
0

Je veux mettre à jour une ligne de table et j'ai un code suivantSubsonic 3.0.0.5 Migration Mise à jour Row

updatePrimaryPaymentAndSecondaryPaymentSourceTypes void()

{

LookUpDetails lookUpDetail = new LookUpDetails(); Var repo = new SimpleRepository ("E2Lending", "SimpleRepositoryOptions.RunMigrations")

lookUpDetail = repo.Single (80);

lookUpDetail.Col1Value = "Mon compte de contrôle";

repo.Update (lookUpDetail);

}

LookUpDetails public class

{

[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; } 

}

Quand je puis exécutez repo.Update (lookUpDetail); me montre Null référence Exception. Pouvez-vous me dire comment je vais pouvoir mettre à jour un seul enregistrement dans une table?

Cordialement

Répondre

0

J'ai le même problème avec le modèle très simple classe: trace

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

de la pile:

à SubSonic.Query.Update.GetCommand()

à SubSonic.Query.Update.Execute()

à SubSonic.Repository.Simpl eRepository.Update [T] (T item)

à MvcApplication1.Controllers.PersonController.Edit (id Int32, collection FormCollection)

dans H: \ ... \ Controllers \ PersonController.cs: ligne 71"

Ma configuration: SubSonic 3, SQLite, base de données vide

1

Ce problème peut être fixé dans le coffre maintenant, mais le correctif est documenté here si vous préférez simplement patcher votre code source de courant.

0

J'ai également rencontré ce problème et j'ai pu télécharger la dernière source SubSonic et le problème était déjà résolu. Ouvrez simplement le projet SubSonic.Core et créez et remplacez la référence de votre projet à SubSonic.Core.

Télécharger la dernière source http://github.com/subsonic/SubSonic-3.0

Boom - Mise à jour du référentiel fonctionne à nouveau!