12

変更したテーブルをdbmlにドラッグするたびに、まったく同じ情報でデータ接続を作成した場合でも、VS2010は接続文字列を更新するように要求します。これが発生するたびに、接続文字列が「DataSourceConnectionString」に変更され、5つの異なるファイルから削除して、以前使用していた接続文字列の名前に置き換える必要があります。これにより、ファイルを使用している他のすべての人を台無しにすることはありません。ソース管理。何か案は?

4

3 に答える 3

19

多少関連する問題への回答をいじくり回した後、別の方法を見つけました。

私が抱えていた問題を解決するには、VS2010 のサーバー エクスプローラー ウィンドウからデータベースに接続するために作成したデータ接続を削除する必要がありました。次に、.dbml デザイナを開き、空白を右クリックしてプロパティを選択する必要があります。プロパティ ウィンドウが開き、[接続] セクションが表示されます。小さな矢印をクリックして開きます。接続文字列の行をクリックすると、ドット (...) が付いたボタンが表示されます。このボタンをクリックすると、[接続のプロパティ] ウィンドウが開きます。このウィンドウには、.dbml が既に持っているものと同じ接続プロパティがすべて既に含まれています。[OK] をクリックするだけで、サーバー エクスプローラーでデータ接続が自動的に作成されます。新しいオブジェクトを .dbml にドラッグするときに、.dbml に新しい接続文字列を追加する必要はありません。

わーい!更新のたびに余分な接続文字列を削除する必要はもうありません! :D

于 2012-06-27T12:18:40.343 に答える
2

DataContext をインスタンス化するときは、接続文字列を指定できるオーバーロードを使用します。これにより、デザイナーによって設定された値が上書きされます。たとえば、次のようにするだけではありません。

DataClasses1DataContext db = new DataClasses1DataContext();

使用する:

DataClasses1DataContext db = new DataClasses1DataContext("..connection string..");

また

DataClasses1DataContext db = new DataClasses1DataContext(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);

これがあなたが探しているものであることを願っています。

于 2012-06-27T00:33:47.620 に答える
0

テキスト エディターを使用して を開き、.dbml接続文字列を手動で削除します。接続は次のようになります

<Connection Mode="" >

その後、次のように独自の部分クラスを使用できます

public partial class MyDataContext : DataContext
{
    public MyDataContext() : base(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString)
    {
        OnCreated();
    }
}
于 2021-10-06T12:38:59.247 に答える