it-swarm.com.de

Fehler beim Hinzufügen eines Controllers zum Abrufen von Metadaten nicht möglich

Ich möchte den Controller in meiner MVC 4-Anwendung in VS2012 wie folgt hinzufügen:

add controller

Modell:

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

Verbindungszeichenfolgen:

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

Nach dem Klicken auf "Hinzufügen" tritt dieser Fehler auf:

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.

Irgendein Vorschlag?

18
Majid

Setzen Sie in Web.config die zweite providerName wie die erste providerName, und machen Sie den Controller nach dem Erstellen des Controllers rückgängig!

von: hier

19
Majid

Mein Post kann helfen, falls jemand dasselbe Problem hat.

Ich habe versucht, mit EF6 und EF5 in demselben Projekt zu experimentieren, und ich bemerkte, dass das <entityFramework> -Tag fehlerhaft war, und dasselbe Problem hatte ich oben.

Folgendes habe ich getan und das Problem gelöst:

  1. Ich habe das <entityFramework> -Tag aus der Web.config entfernt
  2. Deinstalliertes Entitätsframework aus meiner MVC-App mithilfe von Nuget
  3. Erneut installiertes Entitätsframework in meiner MVC-App

Nachdem ich das <entityFramework> -Tag entfernt und EF5 erneut installiert hatte, wurde es behoben, und ich kann meine Controller erneut einrichten.

5
Haitham Sweilem

Ändern Sie providerName="System.Data.SqlServerCe.4.0 In providerName="System.Data.SqlClient, um diesen Fehler zu beheben.

5
carlosCeron

Vergessen Sie nicht zu reinigen und wieder aufzubauen, bevor Sie versuchen, ein Gerüst zu bauen! Das war mein Fehler.

1
Scuba Steve

Ich hatte das gleiche Problem und unten ist die Änderung, die das Problem für mich behoben hat. Musste localhost in ändern. Und hinzugefügt Anfangskatalog = Filme. 

Vor

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

Nach (fix)

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

Referenz:

ASP .Net MVC 4, Ungültiger Wert für Schlüssel 'attachdbfilename'

0
marak

Benutzer folgen für providerName = "System.Data.SqlServerCe.4.0"

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