2010-12-15 2 views
2

私は今日linq2sql dbmlデザインファイルで苦労していました。私が出発してデザイナーにテーブルを置くと、すべてがOKです。私は、名前空間を変更し、データコンテキストの接続文字列プロパティをオフにします。それから私は私のlinqエンティティの部分的な拡張を作成したい。だから私はファイルデザイナーのF7を押しました。この時点ですべてがクールです。その後、DBのスキーマを変更して別のテーブルを追加したり、古いテーブルを削除したり再追加したりすると、MyContext.dbmlはその下のMyContext.designファイルを失います。他の2つ(.csと.layoutはまだそこにあります)。当然、私は最初から始める必要があるすべてを壊します。とてもうるさい。何か案は?VS2008のdmblデザイナーファイルのバグ?

+0

.designerファイルを編集しましたか?それは大きなノー・ノーです。それは編集するファイルです(上部に大きな警告があるはずです)。 –

+0

@Marc、生成されたデータコンテキストファイルを決して編集しないでください。私は拡張されたものを扱うスタンドアロンの部分クラスを作成します。 – dexter

+0

今私は覚えています!すみません、私は15日にあまり注意を払わなかった。 –

答えて

1

Ah!はい!あなたはVS2008を使っていますよね?

これは既知のバグです、そして、あなたのusingディレクティブはpartialクラスのあなた半分のどこにいるか、それは実際に重要...

using Foo; 
namespace Bar { 
    // ... 
} 

が悪く、デザイナーファイルをゴミ...

namespace Bar { 
    using Foo; 
    // ... 
} 

です。

このは、SomeName.dbmlSomeName.csの場合に適用されるため、ファイルの名前を変更することもできます。これはVS2010で修正されています。クレイジー、ハァッ?

0

クラスを別々のファイル/ファイルに保存する必要があります。 C#コンパイラは部品がどこにあるか気にしないので、これは簡単な回避策です。

さらに、生成したファイルにクラスを書き込んだ場合(これはあなたの投稿ではあまり明確ではありません)、これはバグではなく、望ましい動作です。

関連する問題