2007-07-18

Entity Klassen

Die Entity Klassen ermöglichen uns die Struktur der Datenbanktabellen als C# Klassen innerhalb der Programmcode abzubilden. Die Struktur diese Klassen müssen nicht den gleichen Strukturen der Datenbanktabellen entsprechen.

Wenn Sie in Ihren bisherigen Projekten Business Entity Klassen verwendet haben, dann wird Ihnen die Entity Klassen nicht sehr fremd kommen.

Beim Definieren der Entity Klassen soll die Verwendung von Informationen als Basis genommen werden. Die Entity Klassen sollen Ihnen helfen, die aus der Datenbank ermittelten Informationen einfacher darzustellen und auszuwerten. Daher ist es nicht Ratsam, dass Sie die genauen Datenbanktabellen Struktur abzubilden. Versuchen Sie, die Strukturen der Entity Klassen flacher zu definieren. Dieser Aussage ist natürlich auch vom normalisierungsgrad von Ihrer Datenbank abhängig. Wenn Sie eine nicht stark normalisierte Datenbankstruktur besitzen, können Sie die Tabellenstrukturen eins zu eins an Ihre Entity Strukturen reflektieren.

Für die Verknüpfungen zwischen den Datenbanktabellen und Entity Klassen werden LINQ to SQL Attributen verwendet. Die Attribute geben uns auch die Möglichkeit, die Felder der Datenbanktabellen mit den Eigenschaften unserer Entity Klassen zu verbinden.

Der folgende Code Ausschnitt zeigt, wie eine Entity Klasse aussehen kann.

[Table(Name = "Production.Product")]
class Product
{
private int _ProductID;
[Column(Name = "ProductID", Storage = "_ProductID", DBType = "int", CanBeNull = false, IsDBGenerated = true, IsPrimaryKey = true)]
public int ProductID
{
get { return this._ProductID; }
set { this._ProductID = value; }
}

private string _Name;
[Column(Name = "Name", Storage = "_Name", DBType = "nvarchar", CanBeNull = false)]
public string Name
{
get { return this._Name; }
set { this._Name = value; }
}

Im ersten Augenblick fällt auf, dass die Klasse mit Attributen erweitert ist.

No comments: