2011-01-03 14 views
0
<connectionStrings> 
    <add name="AnalysedCompanies" 
     connectionString="Data Source=|DataDirectory|AnalysedCompanies.sdf" 
     providerName="System.Data.SqlServerCe.4.0"/> 
</connectionStrings> 

public class AnalysedCompanies:DbContext 
{ 
    public DbSet<CompanyAnalyse.WebServiceLibrary.MinisterulFinantelorData> DateMinisterulFinantelor { get; set; } 
    public DbSet<CompanyAnalyse.WebServiceLibrary.ONRCData> DateONRC { get; set; } 
    public DbSet<CompanyAnalyse.WebServiceLibrary.InsolventaData> DateInsolventa { get; set; } 
    public DbSet<CompanyAnalyse.WebServiceLibrary.Bilant> Bilant { get; set; } 
    public DbSet<CompanyAnalyse.WebServiceLibrary.ContProfitSiPierdere> ContProfitSiPierdere { get; set; } 
    public DbSet<CompanyAnalyse.WebServiceLibrary.DateInformativeBilant> DateInformativeBilant { get; set; } 
} 

Warum kann ich die im Solution Explorer erstellte SDF-Datei nicht sehen? Alle Dateien anzeigen ist aktiv.Code zuerst -Warum kann ich die erstellte Datenbank nicht sehen

Die Daten werden gespeichert, weil ich sie beim nächsten Mal abrufen kann, aber ich kann meine Datenbank nicht sehen, die Code First erstellen sollte.

Antwort

1

Die .sdf-Datei befindet sich je nach Art der Anwendung im Verzeichnis App_Data oder Debug/Release/executing.

Sie müssen diese Verzeichnisse 'aktualisieren', bevor Sie neue Dateien sehen.

0

Manchmal (insbesondere wenn eine andere Verbindungszeichenfolge zu einer SQL Server Express-Instanz auf dem Computer ausgeführt wird) ignoriert DbContext die angegebene Verbindungszeichenfolge und erstellt Ihre Tabellen in der Express-Datenbank und nicht in einem CE-SDF.

Eine Möglichkeit, sicherzustellen, dass Ihr Kontext den benannten Kontext verwendet, besteht darin, ihn in der Konstruktormethode Ihres Datenkontexts zu erzwingen.

Zu diesem Zeitpunkt sollte Ihr DbContext die genannte Verbindung ausnutzen und die Datei am erwarteten Speicherort erstellen.

+0

Ich glaube, das sollte „name = AnalysedCompanies“ sein, wenn Sie don 't include name = dann wird angenommen, dass es sich um eine literale Verbindungszeichenfolge handelt –

1

Code First verwendet viele Konventionen, für Verbindungszeichenfolgen verwendet er eine Verbindungszeichenfolge basierend auf dem vollständig qualifizierten Typ des Datenkontexts, der den Namespace enthält. Sie müssen also Ihren Verbindungsstring yournamespace.AnalysedCompanies anstatt nur AnalysedCompanies nennen. Andernfalls verwendet EF eine Verbindungszeichenfolge basierend auf den Standardwerten, mit der eine neue Datenbank im lokalen SQLExpress oder in der lokalen Datenbank mit diesem Namen erstellt wird.

Alternativ können Sie die Verbindungszeichenfolge Sie auf die DbContext verwenden wollen übergeben Sie den Konstruktor, der eine Verbindungszeichenfolge oder Namen hat:

public AnalysedCompanies() : base ("name=AnalysedCompanies") {} 
Verwandte Themen