It becomes a little tricky, at least in my case, when you have to go to the database and find out whether or not an entity matching the user-provided attributes already exists all during an asynchronous save operation. What I have done is to be proactive by trying to load a matching entity when the user makes changes to those key attributes on the UI. If the entity is found I then set the ID(FK) to any other related entities, if the entity is not found I then just create the new entity, add all related entities to it and then add the entity to the data context and invoke SubmitChanges. That seems to be working fine for me.
I am going to create a new thread for some other questions I have. I will add a link on this one.
Thanks guys.