Ich denke, Sie sind auf dem richtigen Weg mit Ihrer Haupt "Entity" -Klasse mit Eigenschaften für diese Beziehungen, die von einem anderen starken Typ sind.
Angenommen, Sie haben eine Produkttabelle und eine Kategorietabelle mit der Product-Tabelle, die einen Fremdschlüssel für den Primärschlüssel der Kategorietabelle enthält. In Ihrem Code erhält Ihre Product-Klasse keine ganzzahlige "CategoryID" -Eigenschaft - sie erhält eine "Category" -Eigenschaft, die ein Verweis auf einen Category-Typ ist.
class Product
{
public int ProductID { get; set; }
public string Name { get; set; }
public Category Category { get; set;}
}
class Category
{
public int CategoryID { get; set; }
public string Name { get; set; }
}
diesen Weg gehen können Sie Ihre Geschäftslogik unter Verwendung von Standardklassen codieren und dann Persistenz-Schicht (EF, NHibernate, etc.) mit der Datenbank Interaktion umgehen kann und den Umgang mit dem Fremdschlüssel zwischen den Tabellen.