2012-03-26 5 views
0

Ich bin neu in MVC 3 und alles, was ich versuche zu tun, ist eine CRUD-Schnittstelle mit einer vorhandenen DB zu erstellen. Ich erhalte einen FehlerASP.NET MVC 3 EntityType 'PaMap' hat keinen Schlüssel definiert

One or more validation errors were detected during model generation: 

\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'PaMap' has no key defined. Define the key for this EntityType. 
\tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'PaMaps' is based on type 'PaMap' that has no keys defined. 

Die DB, mit der ich arbeite, hat drei Felder. PA_ID der Primärschlüssel, den ich in MS SQL SERVER definiert habe und mehrfach aktualisiert wurde, um sicherzustellen, dass er tatsächlich definiert wurde. Ich habe auch den _ID-Teil hinzugefügt, nachdem ich gelesen habe, dass MVC manchmal nicht glücklich ist, wenn Ihr Primärschlüssel keine ID im Namen hat. Danach habe ich gerettet und erfrischt, aber immer noch kein Glück. Die Kategorie und der Name sind die anderen zwei Spalten in der Tabelle. Ich verwende die Code-First-Methode, also habe ich meine Getter und Setter in der PaMap-Klasse instanziiert. Ich habe auch versucht, den Primärschlüssel in der PaMap-Klasse mit der [key] -Methode zu setzen. Alles was ich bekomme, ist ein anderer Fehler

"Ungültiger Objektname 'dbo.PaMaps'".

ich die Antworten für diesen Fehler auch gesucht und alles, was ich finden konnte für dbo eine Suche und ersetzen zu tun, habe ich das und es gab nur eine Stelle, wo es dbo verwendet, aber sobald ich dbo das Programm entfernt würde nicht mehr laufen.

Im Moment würde ich mich freuen, wenn ich etwas aus der Datenbank anzeigen könnte, aber im Moment liegt MVC auf meinem Gesicht über einen Primärschlüssel, der nicht definiert wird.

Kann mir jemand helfen, ich kann Ihnen Code zeigen, wenn es helfen würde, das Problem schneller zu diagnostizieren? Ich habe fast überall online nach der Antwort auf diese Frage ohne Glück gesucht. Danke für Ihre Hilfe!

+0

Was hat Ihre web.config für die Datenbankverbindungen? Verwenden Sie SQL Server Compact Edition oder eine andere Version von SQL Server? –

+0

Ich benutze Microsoft SQL Server R2 2008, danke für deine Antwort. Ich werde diese Beispiele durcharbeiten und später noch einmal schreiben. – Goldentp

+0

Ich habe versucht, dass du mir über Jennifer erzählt hast, leider hat es auch nicht funktioniert, weil ich es vermasselt habe oder weil ich MS SQL Server 2008 benutze. Unter http://msdn.microsoft.com/en-us/data/gg685489 habe ich ein anderes Tutorial gefunden. Dies funktionierte tatsächlich mit meiner MS SQL Server 2008 DB, um die Daten in Listenform von der DB jetzt anzuzeigen, ich muss nur herausfinden, wie man bearbeitet und löscht! Danke nochmal für deine Hilfe! – Goldentp

Antwort

1

Die besten Beispiele, die ich für den Aufbau MVC3-Code zunächst mit SQL Server Compact Edition sind Lösungsweg 2 hier gefunden habe:

http://weblogs.asp.net/scottgu/archive/2011/01/11/vs-2010-sp1-and-sql-ce.aspx

und für die Einrichtung der Datenmigrationen, diesen Beitrag hier:

In Scott Gu Lösungsweg 2 (oben Link oben)

http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx

diese wurden .. mit verschiedenen Versionen des Produkts geschrieben, überspringen Sie Schritt 2, da diese jetzt Teil von EntityFramework ist, welches in allen MVC 3 Projekten referenziert wird. Wenn Sie zu Schritt 7 kommen, haben Sie abhängig von der Version von SQL Server Compact Edition, über die Sie verfügen, möglicherweise nicht die Tabelle Edm Metadata. Löschen Sie nicht einfach die Migrationstabellen, wenn Ihre Version diese enthält. Du wirst es brauchen. Dies ist, wo die Migrationen (zweiter Link oben) Teil kommt.

Dies waren die besten Beispiele, die ich finden konnte, als ich das lernte, also hoffe ich, dass dies hilft.