2009-07-25 9 views

Antwort

1

Wenn die Beziehung zwischen Haupttabelle und Attributtabelle ist 1: 1 (gibt es eine oder nur eine aktiven Datensatz in Attributtabelle für einen bestimmten Datensatz in Haupttabelle) Ich würde für jedes Attribut eine Eigenschaft hat in Attributtabelle (s).

Wenn die Beziehung zwischen Haupttabelle und Attributtabelle 1: n ist, hätte ich für jede Attributtabelle eine separate Klasse (möglicherweise in der Haupt-Entitätsklasse verschachtelt). Die Haupt-Entitätsklasse würde dann eine Eigenschaft für jede Attributtabelle haben, was eine Liste vom Typ List<AttributeType> wäre (da es in der Attributtabelle für einen bestimmten Datensatz in der Haupttabelle viele Datensätze geben kann).

0

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.