When ChildBo.Add() called, ParentBO.PK is still null.
Then you have one of two issues. First, you have set the AllowNullValuesOnNewRow property on the business object to True. Otherwise you will NEVER have a NULL value on a BO when a new record is created. Second, if you have a primary key defined on the table, and the PrimaryKeyIsAutoIncrementing property is set to True, this value will be automatically managed for you. Until saved to the server, the PK values will be negative numbers.
Update FK during BeforeSave event?
No. StrataFrame will manage this for you automatically if you setup the relationships. On the child BO, set the ParentRelationship property. Once dropped on the form, set the ParentBusinessObject property to the appropriate parent BO and the FK value will be managed for you.
Note: This is shown in many of the samples. I recommend looking at the Sample CRM application sample that was installed with StrataFrame.