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