Entity Framework Erreur - La version de SQL Server est en cours d'utilisation ne prend pas en charge le type de données 'datetime2'

Je suis en utilisant Entity Framework 4.0 dans un ASP.NET 4.0 Formulaire Web.

Tout est très bien sur le serveur de développement. Mais quand je rentre sur le serveur de production, j'ai mon Elmah enregistre cette erreur

Système.ArgumentException
La version de SQL Server est en cours d'utilisation ne prend pas en charge
type de données 'datetime2'.

J'ai fait une rapide recherche et découvert que datetime2 aka datetime2(7) est le problème et la définition ProviderManifestToken="2005" permettra de résoudre le problème.

Mon problème est le suivant. Mon Serveur de Développement a SQL Server 2008 R2 et du Serveur de Production a SQL Server 2008 Express. Donc, en changeant le manifeste de 2005 ne semble pas juste.

Mes questions sont les

  1. La mise en ProviderManifestToken="2005" travail?
  2. Pourquoi Entity Framework généré un datetime2 quand je n'ai pas utilisé du tout dans le tout de la table?
  3. Est-il mieux contourner?
Bien qu'étant un duplicata de votre question, ce question comme attiré plus d'attention et des réponses et peut-être la peine de vérifier.

OriginalL'auteur naveen | 2011-07-01