2017-01-24 3 views
0

Ich arbeite an einem Web-API und ich brauche eine lokale Datenbank im Ordner App_Data, ich benutze zuerst Entity Framework Code, aber es erstellt keine Datenbank in der App_DataEntity Framework erstellt keine Datenbank in App_Data

Hier ist meine Verbindungszeichenfolge:

<connectionStrings> 
    <add name="TestDBContext" 
     connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=TestDB;Integrated Security=True;MultipleActiveResultSets=True;AttachDBFilename=|DataDirectory|TestDB.mdf;User Instance=True" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

i show menu alle Datei im Projekt verwendet und bla bla bla

aber Datenbank wird in

schaffen sein

Wie behebe ich das?

+0

Hinzufügen 'AttachDbFileName =' Abschnitt innerhalb der Verbindungszeichenfolge. [Referenz] (https://msdn.microsoft.com/en-us/library/jj653752 (v = vs.110) .aspx # localdb) –

Antwort

0

Problem gelöst durch die Installation von Sql LocalDB

1

Ja, das ist die Standardeinstellung. Zwei Möglichkeiten zu beheben:

1) Verbindungszeichenfolge Konstruktor Ihren Kontext hinzufügen:

public ApplicationDbContext() 
     : base("TestDBContext") { } 

2) Fügen Sie eine Standardverbindung Fabrik zu Ihrem config:

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
    <parameters> 
     <parameter value="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=TestDB;Integrated Security=True;MultipleActiveResultSets=True;AttachDBFilename=|DataDirectory|TestDB.mdf;User Instance=True" /> 
    </parameters> 
    </defaultConnectionFactory> 
</entityFramework> 

Siehe https://msdn.microsoft.com/en-us/data/jj556606

+0

Hallo Mann! Ich benutze Ihren Code, aber es funktioniert auch nicht, tatsächlich bekomme ich einen Fehler, während ich versuche, neue Daten einzufügen, der Fehlertext lautet: Das System kann die angegebene Datei nicht finden – Hooman

+0

Wahrscheinlich bei der Datenbankerstellung. Versuchen Sie, die Benutzerinstanz = True zu entfernen, was nur für SQL Express gilt. –

+0

Fügen Sie außerdem einen Backslash zu AttachDBFilename = | DataDirectory | \ TestDB.mdf hinzu –

0

Normalerweise müssen Sie die Einstellungen in der App-Konfiguration so ändern, dass sie "AttachDbFileName" lautet. Andernfalls wird standardmäßig eine SQL Server Express-Instanz verwendet. Normalerweise können Sie nur den Modus angebracht gesetzt und dieses Problem beheben:

<add name="ConnectionStringName" 
    providerName="System.Data.SqlClient" 
    connectionString="Data Source=(LocalDB)\v11.0;AttachDbFileName=|DataDirectory|\DatabaseFileName.mdf;InitialCatalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True" /> 

Hier eine MS Seite auf Verbindungen auch für Sie: https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx#sqlce \

Obwohl ich ernsthaft vorschlagen, wenn dies nicht ein kleines kompakt App, die kleines Wachstum haben Sie tun keine angehängte Datenbank. Dies ist nur eine schlechte Idee für die Bereitstellung von großen Apps und eine schlechte Übung im Allgemeinen, wenn Sie nicht wissen, dass Ihre Datenbank meist immer klein ist. Nur meine zwei Cent.

Verwandte Themen