2012-12-30 7 views
7

Podczas tworzenia aplikacji przy użyciu kodu EF pierwszy widać follwing klucz web.config dodania:Jaki jest cel ciągu połączenia ApplicationUvices w Entity Framework Code Pierwszy scenariusz?

<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> 

można łatwo zobaczyć, że zawiera ona żadnych konkretnych informacji o aplikacji. Zmiana tych wartości nie ma wpływu na działanie aplikacji, więc wydaje mi się, że musi to być niepotrzebny artefakt EF, prawdopodobnie wymagany przez projektanta. Jeśli jednak usuniesz ten klucz, w całości aplikacja uruchomi ConfigurationError na starcie. Jaki jest prawdziwy cel tego klucza?

+0

używasz vs2012? –

Odpowiedz

6

ciąg połączenia odnosić się do:

<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> 

nie ma nic wspólnego z Entity Framework. Jest to część szablonu dla wszystkich niepustych projektów ASP.NET, zarówno WebForms/WebPages, jak i framework MVC. Służy do łączenia się z wbudowaną bazą danych, która znajduje się w folderze App_Data i umożliwia korzystanie z ASP.Model dostawcy NET bez potrzeby wystąpienia serwera SQL Server. Jeśli nie byli pewni, spójrz na wartość domyślną connectionString dla sekcji Membership:

<membership> 
    <providers> 
    <clear/> 
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" 
     enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" 
     maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" 
     applicationName="/" /> 
    </providers> 
</membership> 
2

można łatwo zobaczyć, że nie zawiera Application Specific informacje

Co zastosowanie konkretnych informacji na temat u oczekiwać od ciąg połączenia?

Jaki jest prawdziwy cel tego klucza?

Jest to nowa funkcja programu Visual Studio 2012. Jej nazwa to localdb. Plik mdf zawsze znajduje się w folderze app_data projektu. Wprowadzono go z myślą o łatwości programistów, aby nie musieli martwić się o back-end podczas rozwoju.

1

Przedstawienie z sieci lub app.config jest najprawdopodobniej wpisem w polu Połączenie.

np

<connectionStrings> 
<add name="NameOfYourContext" connectionString="Data Source=SQLServerHost;Initial Catalog=The DBName;Integrated Security=True;MultipleActiveResultSets=True;App=EntityFramework" 
    providerName="System.Data.SqlClient" /> 

Ten przykład jeśli na serwerze SQL swoje SQL Express. Różnica uwydatnia zamierzone użycie.

mianowicie: Początkowa (usługa http) szuka aplikacji web.config lub WPF/Console/Forms w poszukiwaniu App.config.

Struktura obiektu szuka łańcucha połączenia z nazwą kontekstu (zobacz konstruktor lub kontekst). Dotyczy to poprzez dodanie elementu.

Możesz mieć tyle ciągów połączeń, ile chcesz. EF i inne procesy mogą używać tego samego ciągu połączenia. Nie jest to artefakt, w rzeczywistości EF ponownie użył długo funkcjonującej funkcji .net. np. http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.connectionstrings.aspx

Twój kontekst, który zakładam nazywa się ApplicationServices i to spowodowało zamieszanie. lub nazwa jest domyślną nazwą połączenia używaną przez funkcję usługi, z której korzystasz z bazy danych członkostwa. http://msdn.microsoft.com/en-us/library/bb547119%28v=vs.100%29.aspx np Możesz mieć przekrój w config, który ma „connectionStringName” z „ApplicationServices”

Powiązane problemy