2012-04-01 18 views
1

Ich habe ein ziemlich seltsames Problem in meinem ersten Versuch mit Entity Framework (4.1) mit MVC: Ich wollte das Database-First-Muster versuchen, also habe ich meine Datenbank in SQL Server erstellt, habe mein EF-Modell daraus erstellt, eine Vorlage hinzugefügt und meinen Controller mit CRUD-Funktionen generiert. Bis dahin ist alles in Ordnung.Datenpersistenz mit Entity Framework

Aber mein Problem ist mit Datenspeicherung. Ich kann Daten aus dem generierten Formular ohne Fehler speichern, aber die Datensätze werden nicht in meiner SQL-Datenbank gespeichert. Meine Daten müssen irgendwo gespeichert werden (ich habe sogar versucht, meinen PC neu zu starten, und sie sind immer noch stabil). Ich habe auch das Kennwort meines SQL Server-Kontos in der Verbindungszeichenfolge "Entities" von Web.Config geändert, aber Daten sind weiterhin verfügbar.

In der anderen Hand, füllte ich eine andere Tabelle durch SQL Server-Manager, aber ich bin nicht in der Lage, die Daten in der entsprechenden Einheit retreive ...

Gibt es einen Cache, oder etwas, wo meine Entitäten sein könnten einer anderen Instanz von DB zugeordnet, oder alles, was das erklären kann?

Vielen Dank für Ihre Hilfe!

+0

Willkommen bei Stack Overflow übrigens. Es ist ungewöhnlich, hier so gute erste Fragen zu sehen. Du hast eindeutig versucht, herauszufinden, was falsch ist, und es wirklich gut zu beschreiben. –

+0

Uh hem .. sorry ... Hallo an alle! Ich war ein bisschen wütend nach dieser verdammten Verbindung, meine Entschuldigung ;-) – Colin

Antwort

1

Standardmäßig erstellt Entity Framework eine Datenbank auf Ihrem lokalen SqlExpress-Server. Wenn die Verbindungszeichenfolge, die sie erwartet, nicht gefunden wird, wird sie ihre eigene bilden, anstatt zu versagen. Versuchen Sie, Ihren SQL-Server-Manager mit dem Server ". \ Sqlexpress" zu verbinden, und Sie werden dort wahrscheinlich Ihre Datenbank finden.

Mit EF 4.3 und EF Migrationen schrieb ich eine custom initializer, die automatische Erstellung verhindert, falls die Verbindungszeichenfolge nicht gefunden wird.

+0

Das war's, vielen Dank! Es hat eine doppelte Datenbank mit dem Namen meiner Kontextklasse in SQL Express erstellt. Du hast mein Wochenende gerettet! – Colin

0

Ich denke, Sie speichern die Daten in einer anderen Datenbank als wo Sie jetzt überprüfen. Wahrscheinlich eine SDF/MDF-Datei in Ihrem App_Code-Ordner?

+0

yep, genau ... es ist in der lokalen Datenbank von SQL Express gespeichert, wie Anders Abel darauf hingewiesen hat. Vielen Dank! – Colin