Subsonic:简单存储库 - 更新崩溃

时间:2009-08-25 18:22:50

标签: c# sql-server-2008 subsonic simplerepository

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

我正在使用.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 个答案:

答案 0 :(得分:2)

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

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

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

编辑:看起来这是一个错误尝试从github

中提取最新版本

答案 1 :(得分:0)

在此处获取每日构建,以解决您的问题(正如Adam上面所述):

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

您需要编译以解压缩SubSonic.Core.dll