li6185377 / LKDBHelper-SQLite-ORM

全自动的插入,查询,更新,删除, an automatic database operation thread-safe and not afraid of recursive deadlock
MIT License
1.21k stars 288 forks source link

LKModel关联的rowid用法问题 #132

Closed DeftMKJ closed 5 years ago

DeftMKJ commented 5 years ago

LKModel里面关联了rowid,每次插入和查询后,会给model设置一个rowid属性,例如插入的时候会有这段话model.rowid = (NSInteger)lastInsertRowId;,但是Demo里面为什么会把已有的模型属性设置为0 test2.rowid = 0; BOOL ishas = [globalHelper isExistsModel:test2]; 从而让下面这段代码进入else分支,求解释啊,这样直接去掉rowid属性就好了,直接用主键去设置where就好了吧 if (model.rowid > 0) { [deleteSQL appendFormat:@"rowid = %ld", (long)model.rowid]; } else { NSString *pwhere = [self primaryKeyWhereSQLWithModel:model addPValues:parsArray];

    if (pwhere.length == 0) {
        LKErrorLog(@"delete fail : %@ primary value is nil", NSStringFromClass(modelClass));
        return NO;
    }

    [deleteSQL appendString:pwhere];
}
li6185377 commented 5 years ago

demo 只是懒得构建一个新 model。 直接 rowid 赋值为0 ,内部有优先级,有 rowid 就用 rowid,没有采用主键。应该给 rowid 只读属性的,但是懒的改了

DeftMKJ commented 5 years ago

我发了个邮件给你163邮箱,你看下,交个朋友