I've got the following setup (obviously the diagram shows a simplified version)

I wanted to eliminate duplicating common data between databases, in my example, this is the customer table in DB A. In my other apps, I just store the CustomerGuid. I'm thinking of adding a constraint to make sure the CustomerGuid is valid.
So far so good.(Or maybe not)
The problem is when I am in my application layer. I need to create two contexts and then join in memory when I need to retrieve a customer's name and address.
Is this the best approach? It seemed better than replicating the tables in each DB but now I'm not so sure.
My options are as follows:
Create views to join in DBs B,C (I'm leaning towards this one, but the problem is I can't form a full text index on views that draw from tables in multiple databases)
Keep dealing with multiple EDMX and join in memory when I need to. (Full text search is also a PITA)
Replicate data in new tables in each database (seems icky)
Linked servers? How does EF deal with this?
I don't have a straightforward question, (so perhaps I will be down-voted to oblivion) but I wanted to elicit some feedback and suggestions as to which approach is best and/or perhaps an approach I haven't thought of. What is the best practiced recognized?