4

新しい Web アプリケーションを起動しています。SQL Server に追加料金がかかるサービスでホストされる予定であり、率直に言って、サイトにそれほど多くのデータベースは必要ないと思います。現在、データ モデルは 5 つのテーブルです。そして、これまでで最大のテーブルが 10,000 レコードになるとしたら、私は驚かれることでしょう。

だから私はdbを軽量に保ちたいと思います。SQLiteに興味を持ったのは、Android 向けに学習する必要があったからです。しかし、外部キーの欠如は私をうんざりさせます。確かに、外部キー制約のように見えるものを実装することは可能ですが、それは非リレーショナルに感じられます。Firebirdは、FK をサポートする唯一の軽量 (かつ無料) データベースのようです。

また、このプロジェクトで LINQ に足を踏み入れたいと思っています。これまでのところ、LINQ で SQLite または Firebird を使用できるdbLINQしか見つかりませんでした。現在v0.18なのでゴールデンタイムには程遠いです。dbLinq を使用して SQLite のテストを実行しましたが、必要なものに合格しました。

LINQ for SQLite の別の実装が 1 つありますが、私が見つけたリンクはすべて 404 で終わります。

では、LINQ と互換性のある軽量データベースにはどのような選択肢があるのでしょうか? エージェント/サービスをインストールせずにXCOPY 展開可能なものがない限り、SQL Server のコンパクト エディションはいずれもリリースされていますか? ホストに新しいソフトウェアをインストールするように依頼することはできません。彼らがそれを行うとは思えず、(ホスティングに関して) アプリの移植性を高めたいからです。

これまでのリスト:

  • SQLite
  • 火の鳥
  • SQL Server コンパクト
  • VistaDB

更新:すべてのバージョンを試してみて、ここに感想を書きました。短いバージョン: SQLite は圧倒されます。これは、優れた GUI を備え、インストール フットプリントがなく、無料の唯一のものです。

4

6 に答える 6

4

IDbConnection標準オブジェクトを作成できる限り、既存のデータベースで LINQ to SQL をそのまま使用できます。

Firebird DB で LINQ を使用するコードを次に示します。

DbProviderFactory dbProvider = DbProviderFactories
    .GetFactory("FirebirdSql.Data.FirebirdClient");

DbConnection connection = dbProvider.CreateConnection();
connection.ConnectionString = "some connection string";

DataContext linqContext = new DataContext(connection);

var query = from something in linqContext.GetTable<SomeType>() 
            select something.someproperty;
于 2009-01-27T13:38:49.093 に答える
3

SQLite。優れた GUI (auto-freakin-complete も同様) を備えており、インストール フットプリントがなく、無料で、Web サイトをホストしている場所に関係なく動作します。私は自分の質問に答えていることを知っていますが、他の誰も返信にSQLiteだけを入れていません.

重要: SQLite を共有ホスティングで実行する場合は、完全信頼モードを使用する Web ホストが必要です。

于 2009-02-01T20:54:26.010 に答える
3

SQL Server Compact Edition ( http://en.wikipedia.org/wiki/SQLCE ) は、LINQ と他のすべての VS ツールをサポートし、VS 2008 に組み込まれ、FK をサポートし、データベースのフラット ファイルで XCOPY 展開可能です。ただし、警告がないわけではありません。ビューやネストされたクエリなどの多くのものが失敗し、データベースのサイズがかなり大きくなり始めると (つまり 50MB 以上)、かなり肥大化する可能性があることに注意してください。

ここで SQLite .NET プロバイダー ( http://sqlite.phxsoftware.com/ ) を使用し、LINQ でも動作し、基本的な VS サポートを備えている場合、SQLiteもはるかに優れています。

于 2009-01-27T06:18:59.590 に答える
3

VistaDBをご覧になることをお勧めします。ビュー、ストアド プロシージャ、およびトリガーをサポートするという SQLCE および SQLite に勝る追加の利点により、探していることを正確に行うことができます。実際のところ、TSQL と .NET でのプロシージャとトリガーの記述をサポートしているため、SQL Server と .NET の知識を活用できます。

于 2009-01-27T06:59:50.303 に答える
2

VistaDB は、共有ホスティングで Web サイトを実行する場合 (ほとんどの場合、完全信頼モードで Web サイトを実行することはできません)、および単純な x-copy 展開が有効な Web サイトが必要な場合の唯一の代替手段です。

于 2009-03-25T18:37:36.007 に答える
2

SQL Server エクスプレス

于 2009-01-26T22:56:39.313 に答える