Methoden
🧱 1️⃣ ENTITY / TABELLE (Grundstruktur)
Methode Bedeutung Wann verwenden Beispiel
Konfiguriert eine Entity<Produkt>(
Entity<T>() immer
Entity )
ToTable("Nam Tabellenname wenn Name .ToTable("Produkt
e") festlegen vorgegeben e")
.HasKey(p =>
HasKey() Primary Key immer
[Link])
HasNoKey() Keyless Entity Views, Reports .HasNoKey()
.Ignore(x =>
Ignore() Property ignorieren nicht speichern
[Link])
🔑 2️⃣ PRIMARY KEY & ID-ERZEUGUNG
Methode Bedeutung Wann
HasKey() Primary Key immer
Standar
ValueGeneratedOnAdd() Auto-Increment
d
ValueGeneratedNever() kein Auto-Increment Angabe
DB setzt Wert beim
ValueGeneratedOnUpdate() selten
Update
🧾 3️⃣ PROPERTY / SPALTEN
Methode Bedeutung Wann
Spalte
Property() optional
konfigurieren
IsRequired() NOT NULL Pflicht
IsRequired(false) NULL erlaubt optional
HasMaxLength() max. Länge string
DB-
HasColumnName() Spaltenname
Vorgabe
HasColumnType() DB-Datentyp selten
HasDefaultValue() Standardwert z. B. 0
HasDefaultValueS GETDATE(
SQL-Standard
ql() )
Methode Bedeutung Wann
Beispiel
.Property(p => [Link])
.HasMaxLength(100)
.IsRequired();
🔗 4️⃣ BEZIEHUNGEN (RELATIONEN)
🔹 1:1, 1:n, n:m
Methode Bedeutung
HasOne() genau ein
WithOne() genau ein
HasMany() viele
WithMany() viele
HasForeignKe Fremdschlüss
y() el
OnDelete() Löschregel
1:n Beispiel
.HasOne(a => [Link])
.WithMany(p => [Link])
.HasForeignKey(a => [Link]);
🧬 5️⃣ VERERBUNG / DISCRIMINATOR (TPH)
Methode Bedeutung
HasDiscriminato
Typ-Spalte
r()
HasValue<T>() Wert pro Typ
nur bekannte
IsComplete()
Typen
Beispiel
.HasDiscriminator(p => [Link])
.HasValue<Sparprodukt>("Sparprodukt");
Methode Bedeutung Wann
🧩 6️⃣ VALUE OBJECTS (OWNED TYPES)
Methode Bedeutung Wann
eingebettetes Value
OwnsOne()
Objekt Object
OwnsMany Liste von Value
selten
() Objects
Navigation feinsteueru
Owned Navigation
() ng
Beispiel
.OwnsOne(k => [Link]);
📇 7️⃣ INDEXE & PERFORMANCE
Bedeutun
Methode
g
HasIndex() Index
Unique
IsUnique()
Index
HasDatabaseNam
Indexname
e()
Beispiel
.HasIndex(a => [Link])
.IsUnique(false);
8️⃣ CONSTRAINTS & VALIDIERUNG
Methode Bedeutung
IsConcurrencyToke
Parallel-Schutz
n()
HasCheckConstrain CHECK-
t() Constraint
IsRowVersion() Timestamp
🔁 9️⃣ NAVIGATION PROPERTIES
Methode Bedeutung
Navigation() Navigation
Methode Bedeutung Wann
Methode Bedeutung
konfigurieren
AutoInclude() automatisch laden
UsePropertyAccessMod
Zugriff steuern
e()
🧪 🔟 ABFRAGEN / FILTER
Bedeutun
Methode
g
HasQueryFilte globaler
r() Filter
HasData() Seed-Daten
Beispiel
.HasQueryFilter(x => ![Link]);
🧠 1️⃣1️⃣ METADATEN / ERWEITERT
Methode Bedeutung
HasAnnotatio
Zusatzinfo
n()
HasComment( DB-
) Kommentar
LINQ bedeutet
Language
INtegrated
Query
Unsere Spielzeug-Kiste (Liste)
var toys = new List<string>
{
"Ball",
"Auto",
"Puppe",
"Bär",
"Lego"
};
LINQ sagt: „Such mir was!“
Where – „Nur das, was ich will“
👉 „Gib mir Spielzeuge mit B“
var result = [Link](t => [Link]("B"));
Count – „Wie viele?“
int count = [Link]();
First / FirstOrDefault – „Gib mir das erste“
var firstToy = [Link]();
Any – „Gibt es wenigstens eins?“
bool hasBall = [Link](t => t == "Ball");
All – „Sind alle so?“
bool allLongNames = [Link](t => [Link] > 3);
OrderBy – „Sortieren“
var sorted = [Link](t => t);
Select – „Mach was Neues draus“
👉 Aus Spielzeugen → nur Namenlänge
var lengths = [Link](t => [Link]);
ToList – „Jetzt wirklich nehmen“
var list = [Link](t => [Link]("a")).ToList();
LINQ auf Zahlen (super einfach)
var numbers = new List<int> { 1, 2, 3, 4, 5 };
LINQ mit Objekten (EF-Core-Style)
var products = _db.Products
.Where(p => [Link] > 10)
.OrderBy(p => [Link])
.Select(p => [Link])
.ToList();
„Gib mir alle teuren Sachen,
sortiert nach Namen,
aber nur die Namen“
LINQ wird erst ausgeführt, wenn du: schreibst
ToList()
First()
Count()