Ho un modello di prodotto con una proprietà di chiave esterna denominata ProductTypeId
. Tuttavia, non ho un modello ProductType
. Invece, ho un modello TypeListItem
. Vorrei dire a EF per creare ancora un rapporto da ProductTypeId
alla Id
in TypeListItem
tavolo.
Vorrei usare l'API fluente di Entity Framework Core per specificare questo, ma non riesco a capire come. Credo che HasRequired
, ma non credo che sia disponibile in EF Core.
Ecco i modelli in questione:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public int ProductTypeId { get; set; }
}
public class TypeListItem
{
public int Id { get; set; }
public string Name { get; set; }
}
Credo che potrebbe essere necessario aggiungere una proprietà di navigazione di TypeListItem
al modello Product
per renderlo possibile giusto?
In EF Core è possibile anche senza proprietà di navigazione, perché entrambi i metodi HasXYZ
/ WithXYZ
hanno overload parametrici (btw, piuttosto che XYZRequired
/ XYZOptional
, EF Core usa XYZOne
che può essere combinato con IsRequired()
).
La fluente configurazione per il tuo modello così com'è ora è:
modelBuilder.Entity<Product>()
.HasOne<TypeListItem>()
.WithMany()
.HasForeignKey(e => e.ProductTypeId);