8

既存の Web アプリケーション (Entity Framework 5 を使用) を Azure Web ロールに移行しています。

データベース接続文字列を からファイルに移動しweb.configていServiceConfiguration.*.cscfgます。

問題は、自動生成され Model.Context.csたファイルで、エンティティ クラスが次のように定義されていることです。

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

    // DbSets, etc
}

これは常に を検索しMyEntitiesますweb.config。ファイルから接続文字列を渡すことができるように、このコンストラクターをオーバーライドするにはどうすればよいServiceConfiguration.*.cscfgですか?

次のように、このクラスから派生できます。

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

しかし、その後、コード ベース内のすべてのインスタンス化を変更する必要があり、開発者が将来MyEntities使用するのを妨げることはありません。MyEntities

4

1 に答える 1

7

Model.Context.tt ファイルを変更して、使用することができます

CloudConfigurationManager.GetSetting("MyEntities")

代わりに

"name=MyEntities"

MyEntities 用

したがって、コンテキストが再作成されるたびに、常に変更が行われます。この場合、他に何も変更する必要はありません。

于 2013-07-16T14:55:32.933 に答える