castle中怎么修改主键的值 现在只是继承ActiveRecord的update方法,不能实现修改主键值。
NHibernate.StaleStateException: Unexpected row count: 0; expected: 1
主键的值就有的,不是null,不过这个主键是另一个表的外键。
跪求指教
谁告诉你主键值可以修改的,你把他叫过来,我保证不打死他...
为什么不可以改?
我只知道int 类型的自增主键不能改吧,我改的主键是string类型的。
我们老师说可以通过sql 但是没告诉我怎么弄,我查半天资料完全找不到头绪啊。
往赐教...
@New Folder:
为了表示慎重,我自己测试了一下,如果在数据库中,直接写SQL语句确实可以更新主键值。
But any way,
在ORM中,更新主键值确实是一个挑战性的任务。既然你说到老师,那我这样说吧,
当数据行已经保存在数据库中以后,修改主键值被认为是一个可以不需要进行或者可以避免进行的操作。
实际上,我从来不做这个事情。找不到任何理由来做这个事。
如果你是为了纯粹技术狂去研究这个,那请继续吧。
如果想探讨为什么需要或是为什么不需要修改/更新主键的值的话,你可以举一个反例,来说明修改/更新主键值的必要性。
@爱编程的大叔:
明了,
拜谢。
@爱编程的大叔:
Depts是类型名。
Depts : ActiveRecordBase<Depts>
请问这里的<Depts>是什么意思?
我只知道ActiveRecord底层封装了NHibernate,然后这里就是继承了Create,Update,Find,FindAll之类的方法
@New Folder: ActiveRecordBase<T> 你可以去学习一下有关泛型编程方面的知识。
这里的<Depts>就是告诉ActiveRecordBase操作的对象类型。
@爱编程的大叔:
明了
再谢。