2012-04-02 5 views
0

Je travaille sur une première application web de code MVC3 et après avoir montré la première version à mes patrons, ils ont suggéré qu'ils auront besoin d'un 'spare' (comme dans quelque chose qui n'est pas encore défini et nous l'utiliserons au cas où nous en aurons besoin) dans le modèle Employee.Modifier les attributs du modèle - ajouter ou supprimer des attributs

Mon intention est de trouver un moyen de leur donner la possibilité d'ajouter autant d'attributs aux modèles qu'ils en auront besoin. Évidemment, je ne veux pas qu'ils mettent la main sur le code et le modifient, puis le déploient à nouveau (je sais que je n'ai pas mentionné la base de données, ce sera un autre problème). Je veux une solution qui a la capacité d'ajouter de nouveaux attributs «à la volée».

Est-ce que l'un de vous avait des demandes similaires et si vous aviez quelle solution avez-vous trouvé/implémenté?

Répondre

0

Je n'ai pas eu une telle demande, mais je peux imaginer un moyen d'obtenir ce que vous voulez. Je suppose que vous utilisez Entity Framework, à cause de votre tag. Disons que nous avons un employé de classe que nous voulons être extensible. Nous pouvons donner à cette classe un dictionnaire de chaînes où le type de clé est aussi une chaîne. Ensuite, vous pouvez facilement ajouter plus de propriétés à chaque employé.

Pour enregistrer cette structure dans la base de données, vous avez besoin de deux tables. Celui qui détient les employés et celui qui détient les propriétés. Où la table de propriétés a une clé étrangère qui cible la table employee.

Ou comme suggéré dans ce Q & A (EF Code First - Map Dictionary or custom type as an nvarchar): vous pouvez sauvegarder le contenu du dictionnaire au format XML dans une colonne de la table des employés.

Ceci est seulement une suggestion et il serait bon de savoir comment vous avez résolu cela.

+0

Je vous remercie pour l'idée, je vais vérifier et de revenir à vous si j'ai encore des questions, applaudissements –

+0

J'aime le concept que vous avez fourni, et il est logique! Je travaille toujours sur la mise en œuvre –

Questions connexes