我正在使用Ormlite SQlLite v4.0.5,我有一个使用Guid作为标识符的对象。因此我创建了一个属性'Id',它将Guid作为Id返回:
public Guid Id { get { return this.ContactUID; } }
我正在尝试使用db.UpdateOnly
对此对象进行部分更新,但是当我使用Guid指定Id时它不会更新 - UpdateOnly返回0.这就是我正在做的事情:
var icnt = db.UpdateOnly(new ContactSend { IsDirty = false }, cs => new { cs.IsDirty }, cs => cs.ContactUID == key);
但是,如果我在对象上使用另一个属性来识别它,它将成功更新,并从UpdateOnly返回1。使用SQLite数据库浏览器我可以看到更改,我可以看到有一个包含密钥的varchar(800)的Id列。
对于我可以用于Id的数据类型是否有限制,或者具体来说,UpdateOnly是否不支持构建where子句的Guid密钥? (我没有尝试查看任何sql输出)
由于