EF connection string as DbContext constructor argument

前端 未结 4 1049
北海茫月
北海茫月 2020-12-19 07:31

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

相关标签:
4条回答
  • 2020-12-19 07:50

    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.

    0 讨论(0)
  • 2020-12-19 07:52

    I fixed this, to work how it used to with EF4, by changing the "Code Generation Strategy" to "Legacy ObjectContext"

    enter image description here

    0 讨论(0)
  • 2020-12-19 07:59

    if you want to change to code first use this :)

        public class MyCustomDBContext : DbContext
        {
            public MyCustomDBContext()
               : base(GetConnectionStringName())
            {
    
            }
    
            public MyCustomDBContext(string connString) : base(connString)
            {
    
            }
    
    0 讨论(0)
  • 2020-12-19 08:05

    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
    
    0 讨论(0)
提交回复
热议问题