Je souhaite ajouter un contrôleur dans mon application MVC 4 sous VS2012 sous la forme de cette image:
Modèle:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
namespace MvcDemo.Models
{
public class MovieDB
{
public int ID { get; set; }
public string Title { get; set; }
public string Director { get; set; }
public DateTime Date { get; set; }
}
public class MovieDBContext : DbContext
{
public DbSet<MovieDB> Movies { get; set; }
}
}
Chaînes de connexion:
<connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MvcDemo-20130315191956;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-MvcDemo-20130315191956.mdf"
providerName="System.Data.SqlClient" />
<add name="MovieDBContext"
connectionString="Data Source=|DataDirectory|\Movies.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
Après avoir cliqué sur "ajouter", cette erreur se produit:
unable to retrieve metadata for 'MvcDDemo.Models.MovieDB'.Using the
same DbCompiledModel to create contexts against different type of
database servers is not supported.instead,create a
separate DbCompiledModel for each type of server being used.
Toute suggestion?
Dans Web.config
, définissez la deuxième variable providerName
identique à la première variable providerName
et, après avoir créé le contrôleur, annulez-le!
de: ici
Mon message peut aider si quelqu'un a le même problème.
J'ai essayé d'expérimenter EF6 et EF5 dans le même projet et j'ai remarqué que la balise <entityFramework> était foirée et que le même problème se présentait plus haut.
Voici ce que j'ai fait et cela a résolu le problème:
Après avoir supprimé la balise <entityFramework> et réinstallé EF5, elle a été corrigée et je peux à nouveau échafauder mes contrôleurs.
Modifiez providerName="System.Data.SqlServerCe.4.0
En providerName="System.Data.SqlClient
pour corriger cette erreur.
N'oubliez pas de nettoyer et de reconstruire avant d'essayer d'échafauder! C'était mon erreur.
J'ai eu le même problème et ci-dessous est le changement qui a résolu le problème pour moi. Devait changer de localhost à. Et catalogue initial ajouté = Films.
Avant
<add name="MovieDBContext" connectionString="Data Source= localhost\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MoviesDB.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>
Après (réparer)
<add name="MovieDBContext" connectionString="Data Source= .\SQLEXPRESS;Initial Catalog=Movies; AttachDbFilename=|DataDirectory|\MoviesDB.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>
Référence:
ASP .Net MVC 4, valeur non valide pour la clé 'attachdbfilename'
Utilisateur suivant pour providerName = "System.Data.SqlServerCe.4.0"
<add name="MovieDBContext"
connectionString="Data Source=|DataDirectory|\Movies.sdf"
providerName="System.Data.SqlServerCe.4.0" />