2009-06-03 6 views
1

Je reçois de plus en plus frustrés par EF ...Comment pouvez-vous faire une association sans utiliser toutes les clés d'entité dans l'infrastructure de l'entité?

J'ai une table appelée ExtendedField avec:

Enregistrez
DocRef Doctype
Nom

enregistrement est la clé primaire
DocRef et DocType sont des clés étrangères utilisées pour identifier à quel ticket ils appartiennent
Le nom est la clé utilisée par la "définition" ta ble de définir ce que le champ est en fait

Donc, fondamentalement, je besoin de 2 associations:

Un billet et entre ExtendedField sur ExtendedField.DocRef = ticket.record et ExtendedField.docType = HeaderDocType

entre une définition sur ExtendedField.Name = Definition.FieldName

Je st J'ai besoin d'enregistrer pour être la clé primaire afin que je puisse accéder directement aux champs. Autant que je peux dire que c'est impossible à faire dans Entity Framework. Pour chaque association, toutes les clés doivent être mappées ensemble, alors que j'ai besoin de deux clés pour une association, une clé pour une autre et la clé primaire réelle ne serait utilisée dans aucune association.

Il ne semble pas que vous puissiez définir une association entre des champs qui ne sont pas des clés d'entité.

Y a-t-il un moyen de le faire? Est-ce que je manque quelque chose?

Répondre

0

C'est un v1, bro. J'ai moi-même eu un peu de mal avec la cartographie des contraintes clés dans EF. J'ai entendu dire que de meilleures choses arrivent en v2.

+0

Une chance v2 sortira dans les prochains jours? Sinon, je pourrais avoir à revenir à Linq2Sql étant donné que je dois finir dans les deux prochaines semaines. :( – CodeRedick

+0

D'après mon expérience, je voudrais juste revenir à Linq To SQL pour le moment.C'est une technologie géniale qui a été négligée dans le buzz EF actuel ... pour ne pas dire que c'est beaucoup plus facile à utiliser et plus utile à ce stade (à mon avis) Par exemple, je ne peux pas utiliser une procédure stockée qui ne renvoie pas de valeur ou ne renvoie pas de valeur scalaire, je dois retourner un des objets EF. Je ne pense pas que ce soit prêt pour Il y a eu des rumeurs de sortie d'EF v2 avec .Net 4.0 Bonne chance et bon codage :) –

Questions connexes