Дозвуковой: Простой репозиторий - Обновление Crash
Всякий раз, когда я пытаюсь использовать простой репозиторий для простого обновления записи, я получаю ссылку на объект, не установленную для экземпляра ошибки объекта. Я подозреваю, что я делаю что-то неправильно, может кто-нибудь увидеть проблему с приведенными ниже строками кода для сохранения данных в дозвуковой?
Я использую.Net 3.5, SQL Server 2008 и Subsonic 3.0.
Спасибо за любую помощь.
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);
2 ответа
Я предполагаю, что по какой-то причине вы получаете новый объект на линии:
SimpleObject simpleReloaded = repo.Single<SimpleObject>(simple.ID);
Поэтому, когда вы пытаетесь обновить его, SubSonic вызывает исключение, потому что simpleReloaded не имеет первичного ключа. Попробуйте проверить значение simple.ID, а затем посмотрите, заполнен ли simpleReloaded или вы просто получаете новый SimpleObject.
РЕДАКТИРОВАТЬ: похоже, это ошибка, попробуйте вытащить последнюю версию из GitHub
Получите ежедневную сборку здесь, чтобы решить вашу проблему (как сказал Адам выше):
http://github.com/subsonic/SubSonic-3.0/tree/master
вам нужно скомпилировать, чтобы извлечь SubSonic.Core.dll