0

テーブルの行を更新したいのですが、次のコードがあります

void updatePrimaryPaymentAndSecondaryPaymentSourceTypes()

{

LookUpDetails lookUpDetail = new LookUpDetails();

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

lookUpDetail = repo.Single(80);

lookUpDetail.Col1Value = "当座預金口座";

repo.Update(lookUpDetail);

}

パブリック クラス 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; }

}

実行すると repo.Update(lookUpDetail); Null参照例外が表示されます。テーブル内の単一のレコードを更新する方法を教えてください。

よろしく

4

2 に答える 2

0

非常に単純なモデルクラスでも同じ問題があります。

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

スタックトレース:

SubSonic.Query.Update.GetCommand()で

SubSonic.Query.Update.Execute()で

SubSonic.Repository.SimpleRepository.Update [T](Tアイテム)で

MvcApplication1.Controllers.PersonController.Edit(Int32 id、FormCollectionコレクション)で

H:\ ... \ Controllers \ PersonController.cs:line 71"

私の構成:SubSonic 3、SQLite、空のデータベース

于 2009-09-22T06:14:28.593 に答える