2

运行最新版本的 SubSonic (3.0.0.3)。检索单个记录、更改一个字段并调用 .Save 会导致以下代码中的空引用异常:

公共无效更新(IDataProvider 提供者){

        if(this._dirtyColumns.Count>0)
            _repo.Update(this,provider);
        OnSaved();
   }

我创建此异常的代码很简单:

                DAL.MY_QUEUE l_l_itmEngageItem = MY__QUEUE.SingleOrDefault(x => x.id == each.id);
                l_l_itmItem.date_submitted = DateTime.Now;
                l_l_itmItem.Update();

有人有一些见识吗?2.0 从来没有给我一个问题。非常感谢任何帮助。

4

2 回答 2

2

我经历了完全相同的场景。我能够插入,但不能更新。

我发现原因是表上没有设置主键。设置主键后,我就可以更新了。

于 2009-10-01T06:08:32.407 回答
1

它甚至看起来不像是在检索和更新同一个项目。您正在检索l_l_itmEngageItem然后更新 上的字段l_l_itmItem,然后在该字段上调用 ​​Update()。

我猜它还l_l_itemItem没有被初始化为数据库中实际存在的任何东西。

也许问题是你的变量命名;)

于 2009-07-22T18:26:48.943 回答