matt
matt

Reputation: 321

Using a Connection String with Entity Framework

I have a Web API project using Entity Framework using the default local database, how can I change it to use a connection string for a new database?

<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>

Web config: https://pastebin.com/rKaJ8p6V

Upvotes: 0

Views: 303

Answers (2)

Mofid.Moghimi
Mofid.Moghimi

Reputation: 1005

In configuration tag in Web.Config file, use connectionStrings tag like this:

<connectionStrings>
<add name="[Your Connection String Name]" connectionString="Server=.;initial catalog=[your Database name];integrated security=sspi" providerName="System.Data.SqlClient"/></connectionStrings>

And your DbContext constructor class, use your connection string

public class DatabaseContext:DbContext
{
    public DatabaseContext():base("[Your Connection String Name]")
    {

    }


}

Upvotes: 1

RobertBaron
RobertBaron

Reputation: 2854

Here is a connection string example:

<connectionStrings>
    <add name="xxxDbContext" connectionString="Server=tcp:hostname,1433;Initial Catalog=xxxDb;Persist Security Info=False;User ID=sa;Password=xxx;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;" providerName="System.Data.SqlClient" />
</connectionStrings>

And then, you can use it this way, where xxxDbContext is your EntityFramework DbContext class.

using (xxxDbContext db = new xxxDbContext("name=xxxDbContext"))
{
    ...
}

Upvotes: 2

Related Questions