private static void UpdateInverseForeignKeys(this SQLiteConnection conn, object element) { foreach (var relationshipProperty in element.GetType().GetRelationshipProperties()) { var relationshipAttribute = relationshipProperty.GetAttribute <RelationshipAttribute>(); // Ignore read-only attributes if (relationshipAttribute.ReadOnly) { continue; } if (relationshipAttribute is OneToManyAttribute) { conn.UpdateOneToManyInverseForeignKey(element, relationshipProperty); } else if (relationshipAttribute is OneToOneAttribute) { conn.UpdateOneToOneInverseForeignKey(element, relationshipProperty); } else if (relationshipAttribute is ManyToManyAttribute) { conn.UpdateManyToManyForeignKeys(element, relationshipProperty); } } }