
Look at the diagram above. There is a simple and common situation where a class Employee is derived from Person. In LINQ to SQL the key for the object is in the base class (in this case Person). Now, the Employee class wants to add an association to the Position class effectively creating a Positions property in the Employee class. The problem though is that when trying to create the association in the LINQ to SQL designer you will fail. The reason to this is bacuase the "Association Editor" will only allow you to select from properties in the classes where you create the association (in this case Employee and Position) and not from properties that are inherited from the Person class.
The solution to the problem I used was to add the association between the Person and the Position class instead. After doing that I closed the diagram and opened it up in a XML Editor and there manually move the association from the Person class to the Employee class and making some renames (changing Person to Employee). Also don't forget to go to the Position class in the XML and make the same rename changes there. After closing the file, right-clicking it in Solution Explorer and choosing "Run custom tool", the correct code is generated and the diagram correctly shows the association.