我找不到在多对一情况下更新嵌套对象的示例。很清楚映射如何在Fetch上运行;我不是说更新嵌套对象的集合,只是一个。所以给出以下示例:
public class Student
{
public int StudentId { get; set; }
public string Name { get; set; }
[ResultColumn]
public School CurrentSchool { get; set; }
}
public class School
{
public int SchoolId { get; set; }
public string Name { get; set; }
}
在数据库中,Student表包含一个CurrentSchool列,该列是School表中记录的ID。
我没有更新School对象本身,而是将学生映射到另一个。这在Query上很好,但如果我更改Student上的CurrentSchool对象并使用db.Update(studentObject)保存,则外键不会更新。
答案 0 :(得分:1)
在单步执行源代码后,我发现NPoco.ColumnInfo类中有一个ReferenceType属性。正在搜索这个内容,看看 Version 3 下的NPoco wiki中的文档 - > 关系(https://github.com/schotime/NPoco/wiki/Version-3#relationships)。
如果我加入:
CAShapeLayer *circleLayer = [CAShapeLayer layer];
[circleLayer setPath:[[UIBezierPath bezierPathWithOvalInRect:CGRectMake(74.93, 59.5, 31.52, 31.2)] CGPath]];
[circleLayer setStrokeColor:[[UIColor colorWithRed:0.8 green:0.1 blue:0.2 alpha:1.0] CGColor]];
[circleLayer setFillColor:[[UIColor colorWithRed:0.8 green:0.1 blue:0.2 alpha:1.0] CGColor]];
CABasicAnimation* fadeAnim = [CABasicAnimation animationWithKeyPath:@"opacity"];
CABasicAnimation* shrinkAnim = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
fadeAnim.fromValue = [NSNumber numberWithFloat:1.0];
fadeAnim.toValue = [NSNumber numberWithFloat:0.0];
fadeAnim.duration = 1.25;
shrinkAnim.fromValue = [NSNumber numberWithFloat:1.0];
shrinkAnim.toValue = [NSNumber numberWithFloat:0.05];
shrinkAnim.duration = 1.25;
[circle1 addAnimation:fadeAnim forKey:@"opacity"];
[circle1 addAnimation:shrinkAnim forKey:@"transform.scale"];
circle1.opacity = 0.0;
然后在DB对象中保留Student对象时保存外键关系。