Дозвуковой: Простой репозиторий - Обновление 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

Другие вопросы по тегам