Подтвердить что ты не робот

Добавить ошибку контроллера не удается получить метаданные

Я хочу добавить контроллер в мое приложение MVC 4 в VS2012 как это изображение:

add controller

Модель:

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; }
    }
}

Строки подключения:

<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>

После нажатия "добавить" эта ошибка возникает:

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.

Любое предложение?

4b9b3361

Ответ 1

В Web.config установите второй providerName тот же самый, что и первый providerName, и после создания контроллера отмените это!

from: здесь

Ответ 2

Изменить providerName="System.Data.SqlServerCe.4.0 в providerName="System.Data.SqlClient, чтобы исправить эту ошибку.

Ответ 3

Мой пост может помочь, если у кого-то будет такая же проблема.

Я попытался экспериментировать с EF6 и EF5 в том же проекте, и я заметил, что <entityFramework> тег был испорчен и получил ту же проблему выше.

Вот что я сделал, и он решил проблему:

  • Я удалил <entityFramework> тег из Web.config
  • Удаленная структура сущности из моего приложения MVC с помощью nuget
  • Установленная инфраструктура сущности для моего приложения MVC снова

После удаления <entityFramework> тег и повторная установка EF5, он был исправлен, и я могу снова заново настроить контроллеры.

Ответ 4

Следующее для пользователя providerName = "System.Data.SqlServerCe.4.0"

<add name="MovieDBContext" 
connectionString="Data Source=|DataDirectory|\Movies.sdf"
providerName="System.Data.SqlServerCe.4.0" />

Ответ 5

У меня была такая же проблема, и ниже это изменение, которое исправило проблему для меня. Пришлось менять localhost на. И добавлен начальный каталог = фильмы.

Перед

<add name="MovieDBContext" connectionString="Data Source= localhost\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MoviesDB.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>

После (исправить)

<add name="MovieDBContext" connectionString="Data Source= .\SQLEXPRESS;Initial Catalog=Movies; AttachDbFilename=|DataDirectory|\MoviesDB.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>

Ссылка:

ASP.Net MVC 4, Недопустимое значение для ключа 'attachdbfilename'

Ответ 6

В web.config удалите строку AttachDBFilename=|DataDirectory|****.mdf.