私はめったにC#を記述せず、基本的にすべてのアプリケーションとサービスはMSSQLサーバーまたはデータベースサービスを使用してデータソースに接続します。 次に、サーバーではなくローカルデータベースを使用してアプリケーションを作成します。 少しグーグル、突然SQLiteを選んだ。
まえがき
すべてのお客様にコード要件がありました:
- 確立された変数の命名。
- コードのグループ化(コンストラクター、変数、メソッド、イベント...);
- タブとフォーマット(死刑);
- 自己記述SQLクエリの場合、開発者はチームから削除されました。
上記に基づいて、リレーショナルオブジェクトに関連するLINQ to SQLクラスはもちろんデータベースに使用されました。
当然、デスクトップアプリケーションでは、すぐに
SQLiteプロバイダーをダウンロードしてインストールし、データベース、すべてのタブレット、リンクを作成し、LINQ to SQLクラスを作成し、すべてのオブジェクトをブラウザーからそこにドラッグしました。
どうする どこで実行しますか?
もちろん、グーグル、そこからスムーズにstackoverflowに遭遇します! 9000を超えるオプションがあります。
- はい、最初からすべてを書きましょう(SQLiteConnection、SQLiteCommand、SQLiteDataReader、SQLiteDataRecordなど):
- クエリを手動で書きましょう。
- テーブルに1つのフィールドを変更または追加するときにプロジェクト全体を変更しましょう。
- weaklingsのテーブル間の関係、DataTableを使用し、列インデックスで作業します...
いいえ、いいえ、そして再びいいえ。 データクラスは、データベースへの接続、レコードの取得、挿入、更新、削除(DataContext)を担当するデータを処理する必要があり、開発者はリレーショナルオブジェクトとそのプロパティと同じ名前のオブジェクトを使用する必要があります!
解決策
テーブルの「左」コードジェネレーターを探す以外に、やることはありませんでした。 少しグーグルで、すべての長所と短所を
比較検討して、
dblinq2007に決めました 。
後で判明したように、データベーススキーマと接続を使用して、ソースファイルだけでなく、スタジオLINQ to SQLファイルも生成できます。 これがまさに必要なものであり、私は開発を始めました。 最初の例外:dblinq2007が記述され、Framework 2.0のスキームを生成します。4.0を使用します。 ソースをダウンロードし、スタジオで開き、プロジェクトプロパティで、フレームワークの4番目のバージョンを選択し、dblinq2007を再構築します。
コード生成
生成するには、コンパイル済みのバイナリディレクトリにあり、DbMetal.exeと呼ばれるdblinq2007実行可能ファイルを使用する必要があります。 ドックを少し吸ってみましょう。ヘルプを見ると、プロバイダー、接続文字列、ファイル名を指定するだけで十分であり、DbMetalがSQLite用のDBMLファイルを生成します。
DBMLモデルを生成します。
DBMLを生成した後、CSファイル(DBMLファイルと同じ名前を付ける必要があります)を生成する必要があります。CSファイルは、すべての接続でデータベースの構造を記述します。 メイン生成クラス
Mainは 、SQLiteでの作業を実装する
DataContextクラスから継承されます。
すべてのファイルが生成されたので、それらをプロジェクトのディレクトリにコピーし、DBMLファイルをプロジェクトに追加します。 スタジオがSQLiteで動作していることを確認するには、サーバーブラウザーですべてのプレートを選択し、DBMLコンストラクターにドラッグします。
勝利!
原則として、それだけです。 操作が完了すると、LINQクエリをデータベースに書き込むことができ、すべての接続を持つオブジェクトが返されます。
public class Test { private void Example() {