2009-02-16 7 views
1

Est-il possible d'ajouter à mon modèle des propriétés qui n'existent pas dans la base de données? Par exemple, j'ai une table de calendrier, je veux supprimer ces données dans mon contrôleur MVC puis travailler le temps restant jusqu'à ce que chaque entrée commence et retourner à la vue. Je voudrais donc qu'une autre propriété de mon modèle de calendrier conserve le temps restant, valeur que je vais générer en dehors de la base de données.ASP.Net Entity Framework Modèle

J'ai essayé juste d'ajouter la propriété mais quand je fais cela, j'obtiens des erreurs parce que la propriété n'est pas mappée à quoi que ce soit.

Est-ce encore possible?

Merci

Répondre

0

Vous devriez être en mesure d'ajouter la propriété au modèle mais vous ne serez pas en mesure de l'interroger avec LINQ. LINQ va finalement construire et exprimer ce qu'il veut exécuter sur la base de données en utilisant SQL. C'est à ce moment que votre LINQ ne parviendra pas à trouver un mappage de votre propriété à un champ quelque part.

Si votre requête renvoie un IEnumerable du type réel sur lequel vous avez créé la propriété, votre vue peut y accéder. Je ne me souviens pas si EF insiste sur la cartographie dans ce cas, cela pourrait être le cas.

Vous pourriez trouver que vous pouvez créer une requête LINQ ultérieure qui utilise LINQ-to-objects si vous souhaitez fournir un autre type composite à votre vue.

0

C'est une propriété non-persistante ou transitoire. Je ne connais pas bien Entity Framwork mais avec une recherche google rapide, vous devriez trouver la réponse.

BTW vous pouvez trouver beaucoup de conseils ici: http://weblogs.asp.net/zeeshanhirani/archive/2008/12/18/my-christmas-present-to-the-entity-framework-community.aspx

Après avoir fait une recherche rapide moi-même et un test VS2008 je ne vois pas une façon d'exclure une propriété de la cartographie. Peut-être que cela vous oblige à éditer manuellement le fichier de mappage? :(