Subsonic 3.0.0.5 Обновление строки миграции - PullRequest
0 голосов
/ 01 августа 2009

Я хочу обновить строку таблицы, и у меня есть следующий код

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); показывает мне нулевую ссылку исключение. Подскажите, пожалуйста, как я смогу обновить одну запись в таблице?

Привет

Ответы [ 3 ]

1 голос
/ 09 октября 2009

Эта проблема может быть исправлена ​​в магистрали к настоящему времени, но исправление задокументировано здесь , если вы предпочитаете просто исправить свой текущий исходный код.

0 голосов
/ 16 октября 2009

Я также столкнулся с этой проблемой, и мне удалось загрузить последний источник SubSonic, и проблема уже была устранена. Просто откройте проект SubSonic.Core и выполните сборку и замените ссылку вашего проекта на SubSonic.Core.

Загрузить последний источник http://github.com/subsonic/SubSonic-3.0

Boom - Обновление репозитория снова работает!

0 голосов
/ 22 сентября 2009

У меня та же проблема с очень простым классом модели:

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

в MvcApplication1.Controllers.PersonController.Edit (идентификатор Int32, коллекция FormCollection)

в H: \ ... \ Controllers \ PersonController.cs: строка 71 "

Моя конфигурация: SubSonic 3, SQLite, пустая база данных

...