2010-01-29 4 views
0

Je dois rétrograder un site de .NET 4 beta 2 vers .NET 3.5.Y a-t-il une solution de contournement à l'absence de colonnes d'identité de clé étrangère dans Entity Framework 3.5?

Le plus grand obstacle est toutes les valeurs d'identité de clé étrangère I référence/recherche, car cela n'est pas supporté nativement dans EF 3.5.

Quelqu'un connaît-il une solution de rechange raisonnable pour cela?

Un exemple de ce que je veux dire est:

contacts.Where(contact => contact.TypeGuid == guid) 

[TypeGuid] est un FK à [ContactTypes], donc j'obtenir un [ContactType] objet que je peux accéder si j'utilise .Include("ContactType"), mais pas le ID direct lui-même.

+0

S'il vous plaît montrer le code que vous essayez de remplacer. Votre question ne précise pas ce que vous essayez de faire. Il y a * beaucoup * de questions sur les FK dans EF 1 sur ce site; Je présume que vous faites quelque chose de différent? –

+0

Assez juste. J'ai mis à jour la question – joshcomley

Répondre

1

Votre exemple de requête "fonctionne" dans EF 1 si vous spécifiez la propriété ID:

var someContact = Context.Contacts.Where(c => c.ContactType.Id == guid); 

Ceci est en LINQ to Entities.

Dans l'espace objet, vous pouvez vous référer à la EntityKey:

var someContact = contacts.Where(c => { var ek = c.ContactTypeReference.EntityKey; 
             if (ek == null) return false; 
             return ek.EntityKeyValues[0].Value.Equals(guid); 
             }); 
Questions connexes