2017-01-12 10 views
0

私はすでにこの質問を見てきました:Visual studio is waiting for internal operation to completeですので、これを重複としてマークしないでください。大きなC#ファイルにコードを入力すると、Visual Studio 2015がハングアップする

私は約2000の位置エンティティと1000のカテゴリエンティティを持つデータベースをシードする大きなC#コードファイルを持っています。このファイルには、必然的に数千の変数が宣言されています。これ以上のコードをこのファイルに入力しようとすると、Visual Studioはメッセージと共にハングします。Visual Studioがビジー状態です:Microsoft Visual Studioが内部操作の完了を待っています。

これは、この特定の大きなファイルにコードを入力する場合にのみ発生します。私がstringと入力し、スペースを押すと、Visual Studioがフリーズします。 stringと空白にはすぐに赤い波線で下線が引かれ、コードステートメントを終了するまでエラーが発生する可能性があります。これは、静的型チェッカーが大きなファイルを処理できないことや、他の自然の限界やバグ?私がこれまで試した

もの:

  • は、プロジェクトのルート
  • の ".vs" フォルダを削除
  • のVisual Studioの修復プロジェクトのルート
  • で.suoファイルを削除します。 Visual Studioの再インストール

私はVisual Studio 2015コミュニティアップデート3を使用しています。

+2

なぜ、非常に多くのクラスを1つのファイルに入れますか? –

+0

EFモデルデザイナーが原因である可能性がありますか?エンティティクラスを再生成するときにVSがフリーズし、モデルのエンティティが長くなるほどエンティティが多くなります。また、定期的に自動保存を実行してVSをロックします。 – Dai

+0

@DannyChenクラス、変数ではありません。それらは、場所とカテゴリのエンティティでデータベースをシードする際に使用される単なる文字列変数です。おそらく@Dai – nmit026

答えて

0

Visual StudioでSeedメソッドのサイズが絞られました。私はこのメソッドの内容を別々のファイルにいくつかのメソッドに分割しました。私はまた、各メソッドの文字列変数の数を減らしました。私は実際には文字列変数をたくさん宣言する必要はありませんでした。なぜなら、各文字列は1行に1度しか使用されていなかったからです。しかし、さまざまな理由から、精度と可読性が向上しました。

私たちのハードウェアとソフトウェアには依然として重大な制限があります。ここに未来がある。

+0

データ!=コード。データはコードに属していません。 *それはここの持ち帰りです。 –

+0

@ Mat'sMug深刻な質問:私がコードからデータベースをシードしない場合、他のオプションは何ですか?私はSQLスクリプトの道を行くことができましたが、そのアプローチが複雑さを増やしたことがわかりました。このファイルは技術的にはコードファイルですが(実際にはすべての利点があります)、実際には大きなデータファイルです。多くのデータをシードするためにどのようなアプローチを取っていますか? – nmit026

+1

いくつかのxmlまたはcsv(Excel?)ファイルにシードデータを持たせることができ、 'Seed()'メソッドはファイルからデータをロードまたはデシリアライズし、わずかなコードでデータベースにデータを入れることができます。 –

関連する問題