Вопрос

Всякий раз, когда я пытаюсь использовать простой репозиторий для простого обновления записи, я получаю ссылку на объект, не установленную на экземпляр ошибки объекта. Я подозреваю, что я делаю что -то неправильное, может ли кто -нибудь увидеть проблему с нижеприведенными строками кода для сохранения данных в дозвуковую?

Я использую .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);
Это было полезно?

Решение

Я предполагаю, что по какой -то причине вы получаете новый объект на линии:

SimpleObject simpleReloaded = repo.Single<SimpleObject>(simple.ID);

Поэтому, когда вы пытаетесь обновить его, дозвуковое исключение выкладывает исключение, потому что у SidleereLoded нет первичного ключа. Попробуйте проверить значение simple.id, а затем посмотрите, на самом деле проще загружается или просто получаете новый SimpleObject

РЕДАКТИРОВАТЬ: Похоже, это ошибка, попробуй вытащить последнюю версию из GitHub

Другие советы

Получите ежедневную сборку здесь, чтобы решить вашу проблему (как сказал Адам выше):

http://github.com/subsonic/subsonic-3.0/tree/master

Вам нужно компилировать для извлечения oombonic.core.dll

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top