I tried what you suggested and I'm having no luck. I'm not sure the link is being removed when I tell it to.
Prior to creating the new records, I remove the BLLM instance that controls the link. It doesn't appear this is taking place, though because it still filters the role BO even after I explicitly try to fill it (I'm only seeing one record populated in there). Here's the basic flow of the method where I'm getting the problem:
1) Fills the link table and filters it according to the current row in table 1 (contact)
2) Removes the BLLM instance with Global.BllManager.Remove("ContactRole")
3) Fills the role BO with everything from the role table in the database
4) For each record in the link, it deletes the existing link
5) Adds the specified existing links, saving through each iteration of the loop (there's a maximum of three, so there are three statically named controls that are accessed via the FindControl method and their values extracted for use in adding the new link record)
These are the initial settings for the link between business objects:
Global.BllManager["ContactRole"].SyncTable1OnLinkNavigate = false;
Global.BllManager["ContactRole"].FilterTable1OnLinkFilter = LinkManagerFilterTypeOptions.None;
Global.BllManager["ContactRole"].FillTable1OnLinkFill = false;
Global.BllManager["ContactRole"].CheckTable1OnLinkAutoFill = false;
Global.BllManager["ContactRole"].SyncLinkOnTable1Navigate = false;
Global.BllManager["ContactRole"].FillLinkOnTable1Fill = false;
Global.BllManager["ContactRole"].FillLinkOnTable2Fill = false;
Global.BllManager["ContactRole"].FilterTable2OnLinkFilter = LinkManagerFilterTypeOptions.None;
Global.BllManager["ContactRole"].FillTable2OnLinkFill = true;
Global.BllManager["ContactRole"].CheckTable2OnLinkAutoFill = false;
Global.BllManager["ContactRole"].SyncTable2OnLinkNavigate = false;
I did try changing the FillTable2OnLinkFill to false and I ended up in an infinite loop. Watched my debug file get really big, really quick.
Shouldn't it be ignoring this link since I removed it after I populated my objects or is it still persisting somehow and being implemented when I try to add a new row?