使用亚音速3 ActiveRecord以原子方式递增字段
我尝试使用亚音速3 ActiveRecord在MySQL数据库中增加一个字段。在SQL中,我追求的是:使用亚音速3 ActiveRecord以原子方式递增字段,activerecord,subsonic,subsonic3,subsonic-active-record,Activerecord,Subsonic,Subsonic3,Subsonic Active Record,我尝试使用亚音速3 ActiveRecord在MySQL数据库中增加一个字段。在SQL中,我追求的是: UPDATE people SET messages_received=messages_received+1 WHERE people_id=@id_to; 我尝试了以下方法,但似乎不起作用(您收到的消息似乎总是1): 所以我有了一个解决方案,但我只是想知道是否有可能不用简单的SQL就能做到这一点 回答。供参考,根据Rob的以下建议: _db.Update<person>()
UPDATE people SET messages_received=messages_received+1 WHERE people_id=@id_to;
我尝试了以下方法,但似乎不起作用(您收到的消息似乎总是1):
所以我有了一个解决方案,但我只是想知道是否有可能不用简单的SQL就能做到这一点
回答。供参考,根据Rob的以下建议:
_db.Update<person>()
.SetExpression("messages_received").EqualTo("messages_received+1")
.Where<person>(x=>x.people_id==idTo)
.Execute();
\u db.Update()
.SetExpression(“收到的消息”).EqualTo(“收到的消息+1”)
.其中(x=>x.people\u id==idTo)
.Execute();
您可以使用旧的查询工具并使用“SetExpression”:
这是徒劳的-但希望你能得到这个想法:)很酷,谢谢Rob,是的,你得到了这个想法,在上面发布了工作版本。
string sql="UPDATE people SET messages_received=messages_received+1 WHERE people_id=@id_to";
var q=new SubSonic.Query.QueryCommand(sql, _db.Provider);
q.AddParameter("id_to", idTo);
q.Provider.ExecuteQuery(q);
_db.Update<person>()
.SetExpression("messages_received").EqualTo("messages_received+1")
.Where<person>(x=>x.people_id==idTo)
.Execute();
db.Update("MyTable")
.SetExpression("messages_received +1")
.Where("people_id")
.IsEqualTo(1)
.Execute();