0

每当我尝试使用简单的存储库来简单地更新记录时,我都会得到一个对象引用未设置为对象错误的实例。我怀疑我做错了什么,任何人都可以看到以下用于将数据保存到亚音速的代码行有问题吗?

我正在使用 .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);
4

2 回答 2

2

我的猜测是,由于某种原因,你得到了一个新对象:

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

因此,当您尝试更新它时,SubSonic 会抛出异常,因为 simpleReloaded 没有主键。尝试检查 simple.ID 的值,然后查看是否实际填充了 simpleReloaded,或者您是否只是获得了一个新的 SimpleObject

编辑:看起来这是一个错误尝试从github提取最新版本

于 2009-08-25T20:45:36.890 回答
0

在这里获取每日构建,以解决您的问题(如亚当上面所说):

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

您需要编译以提取 SubSonic.Core.dll

于 2009-08-26T06:25:15.850 回答