Mam klasy AgentBalance ze stowarzyszenia do agenta, a więc:Kod EF Pierwsza Fluent API określając Foreign właściwości klucza
public class AgentBalance
{
...
public int AgentId { get; set; }
public virtual Agent Agent { get; set; }
}
AgentId jest wykrywany jako FK dla relacji agent przez konwencję, ale chcę wyraź w klasie Mapping, aby była bezpieczniejsza od przyszłych zmian. Jeśli agent miał kolekcję sald wtedy wiem, jak to zrobić, np .:
HasRequired(t => t.Agent).WithMany(a => a.Balances).HasForeignKey(t => t.AgentId);
Jednak agent nie posiada kolekcji sald - nie chcę, że stowarzyszenie będzie odwrotna żeglowna. Ale bez .WithMany w mapowaniu nie otrzymam opcji określenia .HasForeignKey. Czy istnieje inny sposób? (N.B. Wiem, że mógłbym to zrobić również za pomocą atrybutów, ale chcę używać płynnego mapowania API).
Dzięki - ja ominęło że WithMany() została przeciążona! Nadal wydaje się dziwną składnią. Nie rozumiem, dlaczego nie mogliby napisać coś takiego: HasRequired (t => t.Agent) .HasForeignKey (t => t.AgentId) –
Nie byłoby sposobu, aby EF wiedział, jaki typ związku to jest. – SOfanatic
To nie działa dla mnie. EF tworzy nową kolumnę Agent_Id, poza moim AgentId, który jawnie skonfigurowałem jako kolumnę klucza obcego. Czy wiesz, dlaczego tak się dzieje? – Yulian