1

タイトルがやや紛らわしいように見えるので、説明させてください。:)

私はMVC3.0プロジェクトを持っており、そのためにgithubでパブリックリポジトリを維持しています。プロジェクトはEntity Frameworkとメンバーシッププロバイダーを利用しています(つまり、2つの別々のconnectionStringsです)。

私が抱えている問題は、MSSQLデータベースのSequilizerの「Alias」属性です。ビルド時に置き換えるconnectionString値を1つだけ指定しましょう。web.configをプログラムで変更できないため(また、機密データが公開githubリポジトリで公開されたままになるため、web.config変換は適用されません)、どちらを使用するかを選択する必要があります->エンティティまたはメンバーシップ(他の解決策は、connectionStringsの1つを脆弱なままにすることです)。

MembershipProviderがビルド時にconnectionStringNameを知る必要があるため(すべてがweb.configで指定されています)、これらすべてを実行する方法が少しわかりません。

どんな助けでも大歓迎です!

乾杯

4

1 に答える 1

2

さて、私は最終的にすべてを設定したと思います。

私が行ったことは、メンバーシップのものを提供する通常の接続文字列にのみエイリアスを使用しました-ObjectContextのデフォルトコンストラクター( "MyProjectEntities.Designer.cs"内)をオーバーライドして、構成変数( "EntityFramework"という名前)を使用しました次のように、EntityFrameworkのconnectionStringを保持するAppHarborに設定します。

public MyProjectEntities() : base(ConfigurationManager.AppSettings["EntityFramework"].ToString(), "eTestHubEntities")
    {
        this.ContextOptions.LazyLoadingEnabled = true;
        OnContextCreated();
    }

テストされ、動作したいとおりに動作します。:)

于 2012-08-08T23:41:30.383 に答える