2017-07-14 1 views
-1

Deux tables:Comment créer une propriété de navigation avec la même clé primaire que la table parente?

Orders [Key: OrderId] 
OrderStats [Key: OrderId] 

Chaque ligne de commande a soit zéro ou une lignes OrderStats. Donc orderId 1 a une ligne OrderStats avec OrderId clé primaire 1

Je veux créer une propriété de navigation sur les commandes, donc je peux le faire ...

Console.Writeline(myOrder.OrderStats.Profit) 

Comment puis-je à faire cela dans Entity Framework 6, code-first? OrderStats est une table avec des informations de Business Intelligence pour chaque commande, qui est mis à jour selon un calendrier. Le tableau est séparé pour un certain nombre de raisons pratiques, sans rapport avec ce cas.

+0

Veuillez montrer la partie pertinente du modèle/de la configuration de l'entité concernée et nous dire quel est le problème? –

Répondre

0

Vous pouvez spécifier cette relation dans OnModelCreating en utilisant:

modelBuilder.Entity<Order>().HasOptional(e => e.OrderStats).WithRequired(); 

Ou comme ci-dessous si vous avez également une propriété de navigation Order dans OrderStats

modelBuilder.Entity<Order>().HasOptional(e => e.OrderStats).WithRequired(e => e.Order); 

EF gardera les clés des deux entités du même lors de l'exécution d'opérations de base de données.