I have seen some code sample that put an entity framework connection string as a constructor argument when creating a new DbContext. But when I added a new ADO.NET entity da
The new data model wizard adds a connection string to your config file and the code generation is setup to create a context with a parameterless constructor that then calls the base constructor with "name=foo" so that the connection string in the config file will be used.
If you want to explicitly pass a connection string to the constructor (instead of reading it from config) then you can use the fact that the context is a partial class to add that constructor. You could also modify the T4 code generation template to change the constructor that is generated.
I fixed this, to work how it used to with EF4, by changing the "Code Generation Strategy" to "Legacy ObjectContext"
if you want to change to code first use this :)
public class MyCustomDBContext : DbContext
{
public MyCustomDBContext()
: base(GetConnectionStringName())
{
}
public MyCustomDBContext(string connString) : base(connString)
{
}
As per Arthur Vickers' suggestion, I am extending the partial class to have a constructor that accepts connection string. In C# (very similar to hege's answer):
public partial class MyEFEntities
{
public MyEFEntities(string connectionstring)
: base(connectionstring)
{
}
}
Or in VB.Net:
Partial Public Class MyEFEntities
Public Sub New(ConnectionString As String)
MyBase.New(ConnectionString)
End Sub
End Class