I agree that the way this is set up seems counter-intuitive. For anyone that is too slow (like me) to get driAn's answer:
Per the forum post below, I remembered that we are dealing with an entity, not a table directly. The association is on the entity (which could model the table, but doesn't have to).
http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/2823634f-9dd1-4547-93b5-17bb8a882ac2/
The entity framework is associating PROPERTIES to TABLE COLUMNS. That is why we must delete the "foreign key" PROPERTY on the ENTITY (note: we are not deleting the table column). To reference the column in code, (using the ENTITY modeling the given example of TABLE A & TABLE B) you would write something like this:
variable_A = tableAs.A_ID
variable_B = tableAs.tableBs.B_ID
The second assignment is using the association defined in the entity to get to the data. There is no PROPERTY called "B_ID" on table A.
That is all assuming I understand it right :). It is at least intelisensing correctly for me now.
:-Dan