2012-09-11 24 views
8

今私は夢中になっています。EF 5.0&動的接続文字列?

My(データベース優先)EF-Modelには動的接続文字列が必要です(サーバーのIPアドレスはしばらく変化する可能性があります)。

古いEF-Versionsではコンストラクタ経由で接続文字列を渡すことができますが、これは5.0では不可能です。

これまでに読んだことは、データ・テンプレートを変更することができましたが、モデルなどを再生成するたびに上書きされるため、最良の方法ではありません。

もう1つはSQLConnectionFactoryですが、それはまったく動作しないようです。 (Database.DefaultConnectionFactory = new SqlConnectionFactory(...)は完全に無視されているようです。

これにはどのようなアプローチが適していますか?

+0

私は、これは、具体的EF5の問題であるとは考えていないのではなく、デザイナーは、このためにコンストラクタを含んでDbContext派生クラスを生成しないこと。 t4テンプレートを変更して、必要なコンストラクタを生成できるはずです。 –

+0

このDbContextConstructorを試したことがありますか?http://msdn.microsoft.com/en-us/library/gg679467%28v=vs.103%29.aspx?それはEF5でサポートされています。 –

+0

@ petro.sidlovskyy - 彼の問題は、デザイナで生成されたコンテキストクラスにはコンストラクタが含まれていないため、コンテキストクラスを変更せずにアクセスすることができませんが、dbからデータを再生成するたびに上書きされます。 –

答えて

18

石油では、必要なコンストラクタを使用して部分クラスを作成できます。例えば

public partial class MyContext : DbContext 
{ 
    public MyContext(string connectionString) : base(connectionString) {} 
} 
+0

ありがとうございます、それは私にとって完璧な解決策です! :) –

関連する問題