Ich versuche, eine One-to-Zero-One-Beziehung zwischen zwei Entitäten einzurichten und ich möchte die abhängige Entität still eine eigene Spalte "Identity" enthalten, anstatt ein gemeinsamer Schlüssel zu sein.EF-Code zuerst - konfigurieren One-to-Zero-One-Beziehung ohne gemeinsame PK/FK
Ich möchte so viel wie möglich zu tun, die Konventionen folgen und nicht ausdrücklich etwas zu erklären, die nicht explizite Deklaration erfordern (so, keine unnötigen Daten Anmerkungen oder fließend api Klauseln)
Das entites:
public class File
{
public int FileId {get;set;}
//some omitted file properties
public virtual Task Task {get;set;}
}
public class Task
{
public int TaskId {get;set;}
//some omitted task properties
public int FileId {get;set;}
public virtual File File {get;set;}
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<File>().HasOptional(f => f.Task).WithRequired(t => t.File);
base.OnModelCreating(modelBuilder);
}
Dies erstellt eine seltsame Beziehung, wobei die TaskId sowohl PK- als auch FK-Spalte der Tasks-Tabelle ist. Was, denke ich, sollte es den gleichen Wert wie die Datei-ID haben? (Das ist eine Frage :))
Also, wie mache ich TaskId einen eigenen, sequentiellen Wert und haben FileId ein Fremdschlüssel für die Tabelle Dateien geworden?
Oder vielleicht im Fall 1-0..1 sollte ich lieber die TaskId-Eigenschaft loswerden und FileId die PK/FK-Eigenschaft machen?
Prost!
Vielen Dank, gute Antwort :) – Bartosz