2011-08-25 2 views
0

Est-il possible de créer un mapping à partir de 2 tables et de les faire partager une table de liens? Je ne sais pas si cela fonctionnerait, mais il y a peut-être une meilleure façon de le faire et je voulais obtenir des conseils. Voici mon idée pour les mappings:2 Tables partageant une table de relations dans Entity Framework 4.1 (Code-First) conseil de mappage?

//For Attachments 
HasOptional(a => a.Subscription).WithMany().Map(m => {m.MapLeftKey("SubscriptionID"); m.MapRightKey("EntityId"); m.ToTable("Subscriptions);}); 

//For Submittals 
HasOptional(s => s.Subscription).WithMany().Map(m => {m.MapLeftKey("SubscriptionID"); m.MapRightKey("EntityId"); m.ToTable("Subscriptions);}); 

Est-ce que cela créera la table de lien unique pour les deux entités à partager? Est-ce une bonne approche ou devrais-je avoir un FK pour chaque entité dans une table d'abonnement?

Mise à jour: Je ne pense pas que ces mappings fonctionneront puisque c'est un multi-un? Cela peut être plus approprié:

HasOptional(s => s.Subscription).WithMany().Map(m => {m.MapKey("EntityId"); m.ToTable("Subscriptions");}); 

Model Example

+0

Pouvez-vous spécifier quelle est la relation entre la pièce jointe et les abonnements, les soumissions et les abonnements? – zsong

Répondre

0

En pensant à ce un peu plus, ce n'est pas comment cela fonctionne. J'ai fini par avoir juste les FK pour tous les types dans la classe Subscriptions. fonctionne exactement comme j'ai besoin.

+0

Pouvez-vous poster le code mis à jour pour que la réponse soit claire? –

Questions connexes