Jeśli używam Entity Framework 5 z LocalDb, czy istnieje sposób na określenie nazwy pliku bazy danych w pliku app.config/web.config?Czy mogę określić nazwę pliku bazy danych localdb w strukturze encji 5?
13
A
Odpowiedz
18
W toku dalszych badań wygląda na to, że jest to naprawdę proste, ale nie jest jasne, kiedy czyta się dokumenty.
Przede wszystkim trzeba mieć część Entity Framework konfiguracji
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
Gdy trzeba, że następnie trzeba określić ciąg połączenia. Domyślnie nazwa ciągu połączenia jest pełną nazwą kontekstu. Więc w moim app testu, kontekst był nazywany „DataModel.Context”, więc muszę ciąg połączenia dla „DataModel.Context”
<connectionStrings>
<add name="DataModel.Context" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=database;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\database.mdf" providerName="System.Data.SqlClient" />
ten następnie używa pliku „database.mdf” w katalog danych projektu.
2
Jak wspomniał Nick, musisz podać poza tagami z <entityFramework>
. Więc próbka App.config
może być tak:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="CSOMLocalDataProvider.CSOMContext"
connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=D:\path\to\Database.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>
pamiętać również, że <parameter value="mssqllocaldb" />
zależy od wersji SQL Server. Check this answer for more information.
W której sekcji należy umieścić? –
@WouterSchut checkout moje wyjaśnienie – Yar