Ich habe eine Klasse AgentBalance mit einem Verband an den Agenten, so festgelegt wird:EF-Code Erste Fluent API der Fremdschlüsseleigenschaft
public class AgentBalance
{
...
public int AgentId { get; set; }
public virtual Agent Agent { get; set; }
}
AgentID erfasst wird als FK für den Agent-Beziehung durch Konvention, aber ich möchte Machen Sie es in der Mapping-Klasse explizit, um sicher gegen zukünftige Änderungen zu sein. Wenn der Agent eine Sammlung von Guthaben hatte dann weiß ich, wie dieses beispiel zu tun .:
HasRequired(t => t.Agent).WithMany(a => a.Balances).HasForeignKey(t => t.AgentId);
jedoch -Agent nicht eine Sammlung von Waagen hat - ich will nicht, dass Verein befahrbar sein Gegenteil. Aber ohne die .WithMany im Mapping bekomme ich nicht die Möglichkeit, .HasForeignKey zu spezifizieren. Gibt es eine andere Art und Weise? (N.B. Ich weiß, ich könnte dies auch mit Attributen tun, aber ich möchte das flüssige API-Mapping verwenden).
Danke - ich verpasst hatte, dass WithMany() überlastet war! Trotzdem scheint eine seltsame Syntax. Ich sehe nicht, warum sie dich nicht schreiben lassen könnten wie: HasRequired (t => t.Agent) .HasForeignKey (t => t.AgentId) –
Es gäbe keinen Weg für EF zu wissen, welcher Typ der Beziehung ist es. – SOfanatic
Das funktioniert nicht für mich. EF erstellt eine neue Agent_Id-Spalte neben meiner AgentId, die ich explizit als Fremdschlüsselspalte konfiguriert habe. Weißt du, warum das passiert? – Yulian