c# - referencia - no se pueden recuperar metadatos para mvc
Agregar error de controlador no se puede recuperar los metadatos (7)
Quiero agregar un controlador en mi aplicación MVC 4 en VS2012 como esta imagen:
Modelo:
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; }
}
}
Cadenas de conexión:
<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>
Después de hacer clic en "agregar", se produce este error:
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.
¿Cualquier sugerencia?
¡No se olvide de limpiar y reconstruir antes de intentar un andamio! Ese fue mi error.
Cambie providerName="System.Data.SqlServerCe.4.0
por providerName="System.Data.SqlClient
para corregir este error.
En Web.config
, establezca el segundo nombre de providerName
igual que el primer nombre de providerName
, y después de crear el controlador, ¡deshágalo!
de: here
En web.config
, elimine la línea AttachDBFilename=|DataDirectory|****.mdf
.
Mi publicación puede ayudar en caso de que alguien tenga el mismo problema.
Intenté experimentar con EF6 y EF5 en el mismo proyecto, y noté que la etiqueta <entityFramework> estaba en mal estado y tenía el mismo problema arriba.
Aquí está lo que hice, y resolvió el problema:
- Quité la etiqueta <entityFramework> de Web.config
- Marco de la entidad desinstalada de mi aplicación MVC usando nuget
- Instalar el marco de la entidad a mi aplicación MVC de nuevo
Después de quitar la etiqueta <entityFramework> y volver a instalar EF5, se solucionó el problema y puedo volver a colocar los controladores de nuevo.
Tuve el mismo problema y debajo está el cambio que solucionó el problema para mí. Tuvo que cambiar localhost a. Y agregado inicial de catálogo = películas.
antes de
<add name="MovieDBContext" connectionString="Data Source= localhost/SQLEXPRESS;AttachDbFilename=|DataDirectory|/MoviesDB.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>
Despues
<add name="MovieDBContext" connectionString="Data Source= ./SQLEXPRESS;Initial Catalog=Movies; AttachDbFilename=|DataDirectory|/MoviesDB.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>
Referencia:
ASP .Net MVC 4, valor no válido para la clave ''attachdbfilename''
Usuario siguiendo por providerName = "System.Data.SqlServerCe.4.0"
<add name="MovieDBContext"
connectionString="Data Source=|DataDirectory|/Movies.sdf"
providerName="System.Data.SqlServerCe.4.0" />