2011-08-29 3 views
3

J'ai essayé de créer un modèle dans EF 4.1 pour représenter un schéma de base de données avec une seule table et une colonne contenant des clés étrangères de deux autres tables, mais ont eu peu de chance avec les deux annotations et l'API fluide. Un modèle d'échantillon est montré ici:Entity Framework 4.1 Code First: clé étrangère à plusieurs entités vers plusieurs entités

public class User 
{ 
    ... 
    public virtual ExtendedAttribute ExtendedAttributes { get; set; } 
}  

public class Account 
{ 
    ... 
    public virtual ExtendedAttribute ExtendedAttributes { get; set; } 
} 

public class ExtendedAttribute 
{ 
    public Guid Id {get; set;} 
    public Guid ItemId {get; set;} // both Account.Id and User.Id stored here 
    public string Value { get; set; } 
} 

Actuellement la configuration de ces entités ressemble à quelque chose comme cela pour l'utilisateur et compte Modelbuilders:

this.HasOptional(u => u.ExtendedAttributes).WithRequired(); 

Toute réflexion sur la façon de faire réaliser? Merci beaucoup.

Répondre

0

Ce n'est même pas possible avec la base de données elle-même et EF ne mettra pas d'abstraction pour cela. Vous devez avoir une colonne et une propriété de navigation distinctes pour chaque entité.

+0

Merci pour la réponse Ladislav. Bien que je sois capable de créer une base de données avec les relations de clés étrangères configurées comme je l'ai décrit (ce qui est bizarre), vous avez absolument raison de ne pas pouvoir insérer des données réelles en tant que telles. Donc, je suppose que l'option est alors de mapper les clés à plusieurs colonnes, ou créer un intermédiaire un-à-un pour faire le mapping. Suggestions sur la méthode préférée dans ce cas? – Brent

Questions connexes