Connection String in Entity Framework 6
By FoxLearn 11/9/2024 2:20:59 PM 15
Entity Framework 6 (EF6) uses LocalDB by default
When Entity Framework 6 (EF6) is installed (typically via NuGet), it automatically adds certain default settings to the Web.config
or App.config
. These settings configure EF6 to use LocalDB by default for database connections.
<entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters> <parameter value="mssqllocaldb" /> </parameters> </defaultConnectionFactory> </entityFramework>
When you run an Entity Framework 6 (EF6) project for the first time, a new database is automatically created under the LocalDB instance. By default, the database is stored in the (LocalDB)\MSSQLLocalDB
instance (for SQL Server 2014 LocalDB). The database name is generated by concatenating the project's namespace and the DbContext class name.
How to Use SQL Server instead of LocaDB in EF6?
To use a SQL Server instance instead of LocalDB in Entity Framework 6 (EF6), you need to make the following changes:
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> <parameters> <parameter value="Data Source=.;Initial Catalog=myDb;Integrated Security=True;MultipleActiveResultSets=True;" /> </parameters> </defaultConnectionFactory>
Update the defaultConnectionFactory
setting to use SqlConnectionFactory instead of the default LocalDbConnectionFactory.
Provide the appropriate connection string to connect to your SQL Server instance (instead of LocalDB) under the <connectionStrings>
section.
<configuration> <connectionStrings> <add name="DefaultConnection" connectionString="Server=.;Database=myDb;User Id=sa;Password=123@qaz;" providerName="System.Data.SqlClient" /> </connectionStrings> </configuration>
How to Specify the Database Name?
public class MyDbContext : DbContext { public MyDbContext() : base("MyDB") // Specify the desired database name here { } public DbSet<MyEntity> MyEntities { get; set; } }
In this case, EF6 will create a database named MyDB
instead of the default MyNamespace.MyDbContext
. This approach allows you to control the database name used by EF6, making it easier to work with more descriptive or customized database names.
- How to use Identity column in EF7
- How to enable MultipleActiveResultSets
- How to insert master/details data in EF Code First
- How to use stored procedure in Entity Framework Core
- How to use decimal precision and scale in EF Code First
- How to enable webRTC in CefSharp in C#
- How to fix 'CEF can only be initialized once per process'
- How to prevent target blank links from opening in a new window in Cefsharp