Je travaille sur un projet Web. J'utilise une base de données Sql Server 20008 R2 via LINQ To SQL, et aujourd'hui je faisais face à un problème très étrange avec les relations. Je les utilise depuis un moment et je n'ai jamais eu de problèmes jusqu'à présent.Un problème très intéressant avec les relations SQL Server (SQL Server 2008R2, LINQ à SQL, Visual Studio 2010, C#)
Disons que j'ai une table Stores
qui a les champs suivants: ID
, Name
, LastUserID
où LastUserID
est une "référence" à la table Users
.
Le tableau des utilisateurs a les champs suivants: ID
, Name
, FavoriteStoreID
où FavoriteStoreID
est une "référence" à la table Magasins.
J'ai donc une relation récursive.
Store.LastUser.Name // shows the name of the last user of the store
User.FavoriteStore.Name // shows the name of user's favorite store.
Dans le concepteur de Visual Studio cela ressemble à ceci:
----------
- -
- Users -
- -
----------
| /\
| |
| |
\/ |
----------
- -
- Stores -
- -
----------
Maintenant, le problème est, quand il y a deux flèches (deux relations), un seul d'entre eux travaille. Lorsque j'utilise l'autre, j'obtiens l'erreur Object reference not set to an instance of an object.
.
Lorsque je recrée la table, ajoutez d'abord cette relation (celle qui a déclenché une exception), cela fonctionne. Mais quand j'en ajoute un autre, ça ne marche pas. Donc, évidemment, j'ai foiré quelque chose, et SQL Server ne comprend pas comment interpréter ce que je veux qu'il fasse.
Comment puis-je résoudre ce problème?