Entity Framework DbContext in Azure Web Role

半城伤御伤魂 提交于 2019-12-22 04:21:25

问题


I am migrating an existing Web Application (using Entity Framework 5) to an Azure Web Role.

The database connection string is being moved from the web.config to the ServiceConfiguration.*.cscfg files.

The problem is that in the auto-generated Model.Context.cs file, my entities class is defined like this:

public partial class MyEntities : DbContext
{
    public MyEntities()
        : base("name=MyEntities")
    { }

    // DbSets, etc
}

This will always look for MyEntities in the web.config. How can I override this constructor so that I can pass in the connection string from the ServiceConfiguration.*.cscfg file?

I could derive from this class, like so:

public class MyCloudEntities : MyEntities
{
    public MyCloudEntities()
        : base(CloudConfigurationManager.GetSetting("MyEntities"))
    { }
}

But then I have to change every instantiation of MyEntities in the code base, and it wont prevent developers from using MyEntities in the future.


回答1:


You can change Model.Context.tt file, to use

CloudConfigurationManager.GetSetting("MyEntities")

in place of

"name=MyEntities"

for MyEntities

So each time when context will be re-created, you will always have your changes. In this case you don't need to change anything else.



来源:https://stackoverflow.com/questions/17679088/entity-framework-dbcontext-in-azure-web-role

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!