2012-12-30 3 views
7

Ogni volta che si crea un'applicazione utilizzando il codice EF prima è possibile vedere follwing chiave web.config aggiunto:Qual è lo scopo della stringa di connessione ApplicationServices nello scenario Primo codice di Entity Framework?

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

Si può facilmente vedere che esso contiene alcuna informazione specifica applicazione. La modifica di tali valori non influisce sul modo in cui viene eseguita l'applicazione, quindi mi viene da pensare che debba essere una sorta di artefatto EF non necessario, eventualmente richiesto dal progettista. Tuttavia, se si rimuove questa chiave, l'applicazione genererà ConfigurationError all'avvio. Qual è il vero scopo di questa chiave?

+0

stai usando vs2012? –

risposta

6

la stringa di connessione si fa riferimento a:

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

non ha nulla a che fare con Entity Framework. Fa parte del modello per tutti i progetti ASP.NET non vuoti, sia WebForms/WebPages che il framework MVC. Viene utilizzato per connettersi a un database incorporato che risiede nella cartella App_Data e consente di utilizzare l'ASP.Modello di provider NET senza necessità di un'istanza di SQL Server. Se non fossi sicuro, date un'occhiata al valore di default per la sezione connectionStringMembership:

<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

Si può facilmente vedere che non contiene un'applicazione specifica informazioni

Quale applicazione informazioni specifiche do u aspettare da una stringa di connessione?!

Qual è il vero scopo di questa chiave?

questa è una nuova funzionalità di Visual Studio 2012. Si chiama localdb. Il file mdf si trova sempre nella cartella app_data del progetto. Viene introdotto per la facilità degli sviluppatori, in modo che non debbano preoccuparsi del back-end durante lo sviluppo.

1

Lo snippet show da Web o app.config è molto probabilmente la voce della stringa di connessione.

esempio

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

Questo esempio, se per il server SQL vostro SQL Express. La differenza evidenzia l'uso previsto.

vale a dire: L'avvio (servizio http) cerca applicazioni web.config o WPF/Console/Forms cerca App.config.

Il framework Entity cerca una stringa di connessione con il nome del contesto (consultare il costruttore o il contesto). Questo risiede

<configuration> 
     <connectionStrings> 

a titolo di aggiungere elemento.

È possibile avere quante stringhe di connessione desiderate. EF e altri processi possono utilizzare la stessa stringa di connessione. Non è un artefatto, infatti EF ha riutilizzato una caratteristica .net consolidata da molto tempo. ad es. http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.connectionstrings.aspx

Il contesto presumo si chiama ApplicationServices e questo ha causato confusione. oppure il nome è il nome di connessione predefinito utilizzato dalla funzione di servizio che si sta utilizzando come database di appartenenza. http://msdn.microsoft.com/en-us/library/bb547119%28v=vs.100%29.aspx ad esempio si può avere una sezione nella configurazione, che ha un "connectionStringName" di "ApplicationServices"