49

Visual C# 2008 Express エディションでデータベース エクスプローラーを使用すると、次のオプションが表示されるのは奇妙です。

  1. マイクロソフト アクセス
  2. SQL Server Compact 3.5、および
  3. SQL Server データベース ファイル。

ただし、Visual Web Developer 2008 Express を使用すると、通常の SQL Server、Oracle、ODBC などに接続できます。

SQL Server データベースと対話する必要があるコマンドラインまたはその他の C# アプリを開発している人にとって、LINQ/データ アクセス コードを 1 つの IDE (Visual Web Developer) でビルドし、プログラムを別の (Visual C#) でビルドする必要があるでしょうか?

難しい回避策ではありませんが、奇妙に思えます。Microsoft が、SQL Server に接続するために Visual Studio へのアップグレードを強制したいのであれば、無料の IDE の 1 つにその機能を含めて、もう 1 つの IDE には含めないのはなぜでしょうか? 何かが足りない気がします (Visual C# ですべてを行う方法など)。

4

6 に答える 6

21

SQL Server データベース ファイル オプションを選択して適切な種類のデータベース (system.data.SqlClientプロバイダー) を取得し、手動で接続文字列を修正してデータベースを指すようにする必要があります。

これらのデータベースの選択の背後にある理由は、おそらく次のようになると思います。

  • Express Edition を使用していて、Visual Web Developer を使用していない場合は、おそらくデスクトップ プログラムを作成しています。
  • デスクトップ プログラムを構築していて、express エディションを使用している場合、おそらく企業向けの開発ではなく、自宅で仕事をしている愛好家または uISV 担当者です。
  • 企業向けに開発していない場合、アプリはおそらくエンド ユーザー向けであり、データ ストアはおそらくエンド ユーザーのローカル マシンに置かれます。
  • サーバー クラスのデータベースをエンド ユーザーのデスクトップに展開するべきではありません。Sql Server Compact や MS Access のようなインプロセスデータベースの方がはるかに適切です。

ただし、このロジックは完全には成り立ちません。これらの 4 つのポイントのそれぞれが 90% の確率で真実であったとしても、4 つすべてを適用するまでには、聴衆の ~65% にしか適用されません。サーバークラスのデータベースに、これは重要なグループです。したがって、単純化された (貪欲な) バージョン:

  • 実際の db サーバー (およびそれを実行するためのハードウェア) には実際の費用がかかります。それにアクセスできる場合は、少なくとも Visual Studio の標準版を購入する余裕があるはずです。
于 2008-10-09T20:24:38.650 に答える
21

回避策:

  1. Visual Web Developer Express でソリューションを開きます。ソリューション内の一部のプロジェクトは読み込まれませんが、問題ありません。
  2. データベース エクスプローラーで、SQL Server から必要なデータベースへの新しい接続を作成します。
  3. 新しいクラス ライブラリ プロジェクトを追加します。
  4. LINQ to SQL Classes アイテムを追加し、データベースにリンクします。
  5. ソリューションを閉じます。
  6. Visual C# Express でソリューションを開きます。

これで、Visual C# Express の SQL Server データベースにリンクされた LINQ to SQL クラス ライブラリができました。

アップデート

ソリューションは、Visual Studio Express 2010 用です。

于 2011-01-16T23:22:07.087 に答える
2

これを使用して LINQ to SQL を取得し、私の Visual Developer に使用したいと考えている場合は、1) 無料の Visual WEB Developer を入手し、それを使用して SQL Server インスタンスに接続し、LINQ インターフェイスを作成してから、生成されたファイルをあなたの Vis-Dev プロジェクト (私は VD を使用していません。変に聞こえるからです)。*.dbml ファイルのみを含めます。Vis-Dev 環境がサポート ファイルを認識するのに 1 ~ 2 秒かかります。これは少し余分なステップですが、手動で行うよりも、完全にあきらめるよりも、さらに悪いことにお金を払うよりも確実に優れています。もーはははは。

于 2009-10-11T23:17:53.177 に答える
2

C# Express 2008 を機能させる唯一の方法は、データベース ファイルを移動することでした。そこで、SQL Server Management Studio を開き、データベースをドロップした後、ファイルをプロジェクト フォルダーにコピーしました。次に、データベースを管理スタジオに再接続しました。これで、ローカル コピーにアタッチしようとすると動作します。どうやら、同じデータベース ファイルを複数回使用することはできません。

于 2010-03-17T20:49:44.660 に答える
2

私の推測では、VWD を使用すると、ソリューションがサード パーティのサーバーに展開される可能性が高くなります。サード パーティのサーバーの多くは、動的にアタッチされた SQL Server データベース ファイルを許可していません。したがって、他の接続タイプが許可されます。

この IDE の動作の違いは、フル バージョンにアップグレードする主な理由の 1 つです。

于 2008-10-09T20:05:09.297 に答える
2

たまたま、便宜上、ホーム ビジネス アプリケーションを Windows フォームで開始しました。現在、Visual C# Express 2010 / SQL Server 2008 R2 Express を使用して開発しています。SQLサーバーのインスタンスに接続する必要があるOPと同じ問題が発生しました。ここでは詳細を省略しますが、そのデータベースは、現在開発中のアプリケーションも使用する 2 ~ 3 台のコンピューター間で同期される統合データベースになります。

少なくとも、これまでのところ問題なくテーブルアダプターでストアド プロシージャを使用できるようになったので、簡単な回避策を見つけたと思います。

職場の別のプロジェクト (VS2010 Premium) で使用した SQL 接続をコピーして app.config に貼り付け、そこで必要なものをすべて変更しました。Settings.settings に戻ったとき、app.config ファイルの内容が必要であることを確認する必要がありました。私が見ることができる唯一の欠点は、「SQL Server」がオプションではないため、接続文字列の構成内に入るとどこにも行けないため、接続を「テスト」できないことです。もう1つの欠点は、ウィザードを使用して機能させることができないため、すべてを手動で入力する必要があることです.

そのようにするべきだったかどうかはわかりませんが、少なくともSQLサーバーに接続できるようになりました:)。

編集 :

SQL Server 2008 R2 Express インスタンスでのみ機能します。SQL Server 2008 R2 ワークグループ以降で試すと、Visual C# 2010 Express から「現在のバージョンの Visual Studio ではその接続を使用できない」という厄介な警告が表示されます。テーブルアダプターのいくつかを変更しようとしたときにそれを取得しました。開発のために SQL Express インスタンスに切り替えたところ、再び正常に動作しています。

于 2011-08-15T15:14:07.683 に答える