2011-04-13 7 views
1

Comment remplacer la convention par défaut de la colonne de clé étrangère dans EF4 pour spécifier un nom de colonne différent? Par exemple, j'ai une entité avec une propriété appelée Parent qui fait référence à une autre du même type. EF4 tente de résoudre la relation en recherchant la clé étrangère nommée EntityId, mais dans mon schéma de base de données, elle est Entity_Id. Comment puis-je dire à EF que le nom de la colonne FK n'est pas EntityId?EF4 CTP5 - Renommage de plusieurs à une colonne

J'ai essayé ce qui suit:

modelBuilder.Entity<SomeEntity>() 
    .HasOptional(m => m.Parent) 
    .WithMany() 
    .IsIndependent() 
    .Map(m => m.MapKey(k => k.Id, "Entity_Id"))); 

Mais je reçois une exception en disant: Sequence contains more than one matching element.

Vous avez de l'aide?

Merci!

Répondre

2

Première: mise à niveau vers EF 4.1 RTW. CTP 5 est obsolète et contient potentiellement de nombreux bugs qui sont corrigés maintenant.

Si vous avez fait la mise à niveau devrait ensuite fonctionner:

modelBuilder.Entity<SomeEntity>() 
    .HasOptional(m => m.Parent) 
    .WithMany() 
    .Map(c => c.MapKey("Entity_Id")); 
Questions connexes