J'ai une petite question sur la configuration des mappages entre [Order Details]
, [Products]
et [Orders]
dans la base de données Northwind.Comment spécifier une clé composée dans Entity Framework Code Première
[Order Details]
n'a pas de clé primaire, et ressemble à ce
[Order Details]
OrderId (int)
ProductId (int)
...
Alors ma question est de savoir comment puis-je (et je peux) mettre en place ma OrderDetails
classe pour travailler comme ça?
public class OrderDetails
{
public virtual Order Order { get; set; }
public virtual Product Product { get; set; }
public Decimal UnitPrice { get; set; }
public int Quantity { get; set; }
public Decimal Discount { get; set; }
}
Mon contexte de données ressemble à ce
public class NorthwindDb : DbContext
{
public DbSet<Product> Products { get; set; }
public DbSet<Category> Categories { get; set; }
public DbSet<Order> Orders { get; set; }
public DbSet<OrderDetails> OrderDetails { get; set; }
public DbSet<Customer> Customers { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new OrderDetailsConfiguration());
}
public static void InitializeBecauseOfThatWeirdMetaDataThingThatIDontUnderstandYet()
{
Database.SetInitializer<NorthwindDb>(null);
}
}
Et Mon OrderDetailsConfiguration
(vide parce que je ne sais pas ce que je fais)
public class OrderDetailsConfiguration : EntityConfiguration<OrderDetails>
{
public OrderDetailsConfiguration()
{
//HasKey(x => x.Order.OrderId);
//HasKey(x => x.Product.ProductId);
}
}
Les conseils ou des idées seraient génial.
Merci pour votre aide, Morteza. Je suppose que la prochaine question est de savoir comment garder la commande et l'identifiant du produit protégés, mais je vais creuser un peu avant de demander ici. – Joe
Pas de problème, je suis content que ça a aidé :) –