2009-11-13 4 views
1

J'ai deux entités EF. On a une propriété appelée HouseNumber. L'autre a deux propriétés, une appelée StartHouseNumber et une appelée EndHouseNumber.ADO.NET Entity Framework Association d'entités par plage de valeurs

Je souhaite créer une association plusieurs à plusieurs entre ces éléments selon que HouseNumber se situe ou non entre StartHouseNumber et EndHouseNumber. Cependant, je peux seulement sembler obtenir un opérateur égal dans l'interface graphique.

Y a-t-il un moyen qui me manque pour accomplir cette association par portée?

Répondre

1

En théorie, vous pouvez le faire voir this post lors de la création d'une association soutenue par une vue.

Mais comme d'autres l'ont dit, ce n'est probablement pas une bonne idée.

Alex

1

Donc, après beaucoup plus de lecture sur ce sujet, la réponse est que vous ne pouvez pas le faire, mais aussi que c'est un comportement indésirable à avoir.

Les associations dans le cadre d'entité doivent être en lecture-écriture. Si je crée l'association que j'ai décrite, que se passerait-il si j'ajoutais l'une des entités à la collection d'association de l'autre entité? Quelle valeur choisirait-il pour HouseNumber pour le faire tomber entre les valeurs Start et End?

La méthode correcte consiste à écrire une fonction d'assistance qui prend un argument pour HouseNumber et à le placer sur une classe partielle codée à la main de la deuxième entité. Vous pouvez également écrire une propriété en lecture seule pour effectuer la recherche ou une méthode getter. Alternativement, vous pouvez écrire une procédure stockée dans votre base de données qui peut le faire et l'importer dans l'entité.

1

Vous ne pouvez pas faire cela avec une association, autant que je sache, mais vous pouvez le faire avec une requête.

Questions connexes