Fehler beim generieren des ScaffoldingConnectionFactory
Habe ich eine einfache Klasse namens Antragsteller. Ich versuche zum hinzufügen einer Vorlage-controller unter Verwendung des Entity Framework mit dem Antragsteller als meine model-Klasse und eine neue Daten-Kontext.
Jedes mal, wenn ich versuche zu erstellen, der controller, bekomme ich eine Fehlermeldung-Dialogfeld, das sagt "Nicht in der Lage zum abrufen von Metadaten für die 'MyNameSpace.Modelle.Antragsteller'. Es war ein Fehler generieren 'ScaffoldingConnectionFactory'. Wiederaufbau versuchen Ihr Projekt."
Neuerstellen bringt nichts.
Hier ist meine model-Klasse:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
namespace MyNameSpace.Models
{
public class Applicant
{
public int ApplicantId { get; set; }
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
public string MiddleInitial { get; set; }
[Required]
public string Phone { get; set; }
[Required]
public string EmailAddress { get; set; }
[Required]
[DataType(DataType.Date)]
public string DateOfBirth { get; set; }
public virtual Ethnicity Ethnicity { get; set; }
public virtual Race Race { get; set; }
}
public class Ethnicity
{
public int EthnicityId { get; set; }
public string Type { get; set; }
}
public class Race
{
public int RaceId { get; set; }
public string Type { get; set; }
}
}
Ich das Gefühl, ich hab eine Stufe verpasst, aber ich kann nicht meinen finger auf Sie.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hatte ich das gleiche problem hatte und es beheben ähnlich.
Meine version von EF war nicht kompatibel mit der neuen MVC-Werkzeuge. Nach der Aktualisierung EntityFramework aus NuGet, und macht ein paar updates, veralteter code, alles ist in Ordnung.
Dies ist eine schreckliche Antwort und ich würde gerne verstehen, die eigentliche Ursache, aber meine Lösung war die deinstallation des Entity Framework library package reference von NuGet, dann neu installieren. Alles funktioniert jetzt.
Ich hatte das gleiche Problem. Habe versucht neu zu installieren EntityFramework NuGet.
Nicht alles reparieren.
Bin ich jetzt Abbrechen und versuchen mithilfe von Linq.
Ich dachte, ich hätte diese Arbeit früher an!!
http://www.asp.net/mvc/tutorials/creating-model-classes-with-linq-to-sql-cs
Manchmal scheint es, wie der MS-stack verändert sich ständig so viel, es ist unzuverlässig. Das ist, warum Menschen mit Linq?
EDIT: betreiben von web platform installer, der auf MS Visual web designer behoben dieses problem.
War ich gerade erst kennengelernt diese problem und dann erkenne ich, dass ich das Recht zu wählen NuGet-Paket um dieses problem zu vermeiden. Es gibt zwei sehr bekannte Pakete in der NuGet-Paket-Liste.
Den "EntityFramework.SqlServerCompact" sollte verwendet werden, wenn Sie mithilfe von Entity Framework 4.1 !!
Ich habe dieses problem, wenn ich versuchte, einen Domänencontroller zu erstellen über den "Add Controller" dialog-box, und die durch auswählen von "Controller mit lese - /schreibaktionen und Ansichten unter Verwendung von Entity framework" Template-Auswahl.
Dieser erzeugt code für eine Controller-Klasse. Durch die Art und Weise, dies beinhaltet Referenzen auf eine Entity Framework Context-Objekt (wie in meinem Fall für eine PersonController, die folgende Zeile: "Person Person = db.Menschen.Find(id);"). Dies ist für einen Ausgangspunkt, nur, und das kann man natürlich ersetzen Sie den automatisch generierten code, wenn Sie es wünschen. So oder so, das ist, warum fragt er nach einer Kontext-Klasse in das Dialogfeld, und warum wird es auto-gen neu für Sie, wenn angefordert.
Ich referenzierte Entity Framework mit Nuget, das hatte den Effekt, verweisen auf EntityFramework.dll v4.0. Ich später abstrahierten Daten aus dem Access-code in einem anderen Projekt, so dass dann deinstalliert EF über Nuget. Es wurden einige bisher bestehende Verweise auf DbSet<> in dem Zusammenhang Klasse, und ich denke, ich muss es behoben, indem man Resharper, um einen Verweis hinzufügen, um das Projekt einfach zu bekommen, es zu kompilieren/bauen. R# Hinzugefügt einen Verweis auf System.Daten.Einheit aus der .Net 4 Framework-Bibliothek. Es war in dieser Phase, ich habe immer den Fehler beim Versuch, erstellen Sie neue Domänencontroller verwenden des "Controller mit lese - /schreibaktionen und Ansichten unter Verwendung von Entity framework" - Vorlage.
Ich es behoben, indem Sie (1) entfernen Sie alle Verweise auf System.Daten.Person; (2) Installation von Entity Framework-über Nuget und Wiederaufbau; (3) Erstellung des Reglers(s); (4) deinstallation von EF über Nuget, entfernen Sie den automatisch generierten Kontext-Klasse und ersetzen Sie den automatisch generierten code in den controller mit meinem eigenen verwiesen, dass mein Unterricht von meinen DAL project/Montage.
Hatte das gleiche problem. Problem ist, dass der Kontext in separaten assembly.
Ich hatte das gleiche problem beim hinzufügen von neuen controller in ASP.NET MVC 4, ich löste das problem, indem die
Database.SetInitializer(new SomeDataContextInitializer());
aus dem Konstruktor der DBContext zu Application_Start-Methode in der Global.asax.cs.Hoffe, es hilft.
Kann es sein, dass die Werkzeuge, die erwarten, dass Ihre Entity Framework EDMX werden in der gleichen assembly wie Ihre website?
Ich habe die gleichen Fehler auftreten an einem Projekt, wo der EDMX wurde in einer separaten assembly.
Dies war nötig, weil wir benötigten access-Datenbank für eine website ebenso wie für einen service.
Ich hatte das gleiche problem mit EF 4.3.1. In meinem Fall war es, weil ich angeschlossen hatte, zusätzliche Funktionen, um den DbContext generiert eine partielle Klasse. Wenn ich entfernt diese Klasse aus dem Modell-Projekt, das Gerüst ordnungsgemäß gearbeitet.
In meinem Fall die .edmx-und model-Klassen wurden in einer separaten assembly. Das war nicht die Frage, wie ich in der Lage war, das Gerüst ordnungsgemäß funktioniert einfach entfernen eine partielle Klasse, die hatte ich verwendet, um zu erweitern der generierten DbContext-Klasse.
Ich versuchte zu verwenden MVC 4 und Entity Framework 6. Ich fand schließlich heraus, dass MVC4-Referenzen der EF5 dll standardmäßig deinstalliert und installiert EF6. Sie bekam ich die Nachricht:
Lösung war die Verwendung von MVC 5, statt, wie ich bereits geschrieben hatte, EF6-code, und die MVC-app neu war.