4

既存のデータベース (LINQ to SQL、Hibernate など) を操作するためのデータ アクセス層を作成する (自動) 方法がいくつかあることは知っています。しかし、私は次のようなことに少し疲れてきました(そして、物事を行うためのより良い方法があるはずだと私は信じています):

  1. Visio でのテーブルの作成/変更
  2. Visio の「データベースの更新」を使用してデータベースを作成/変更する
  3. テーブルを「LINQ to SQL クラス」オブジェクトにインポートする
  4. それに応じてコードを変更する
  5. コンパイル中

オブジェクト/エンティティ定義からデータベース スキーマを生成する方法についてはどうですか? このようなツールの適切なリファレンスを見つけることができないようです (少なくともいくつかのフレームワークでは、ある種の組み込みサポートが期待されます)。

次のことができれば完璧です。

  1. オブジェクト定義を変更する
  2. オブジェクトを操作するコードを変更する
  3. コンパイル (データベースの変更は自動的に魔法のように行われます)
4

10 に答える 10

4

DataObjects.Netをチェックしてください-まさにこのケースをサポートするように設計されています。コードのみで、他には何もありません。そのスキーマアップグレードレイヤーは、おそらくあなたが見つけることができる最も機能的なレイヤーであり、スキーマアップグレードSQLを完全に抽象化します。

製品ビデオをチェックしてください-スキーマを同期するために追加の作業が行われていないことに気付くでしょう。スキーマアップグレードサンプルは、この機能の使用目的を示しています。

于 2009-07-20T19:47:58.240 に答える
1

ジェイソンが示唆したように、オブジェクトデータベースは良い選択かもしれません。db4objectsを見てください。

于 2008-08-26T23:27:41.217 に答える
1

あなたが説明したのはGORMです。これはGrailsフレームワークの一部であり、Hibernate (将来的には JPA) と連携するように構築されています。私が最初に Grails を使用したとき、それは逆に思えました。テーブルを作成し、フレームワークにデータベース スキーマから足場を生成させるという Rails スタイルのワークフローの方が快適でした。GORM はドメイン オブジェクトを永続化するため、オブジェクトを作成および変更すると、データベースの作成/更新が管理されます。これは、慣れてきた今ではもっと理にかなっています。新しいフレームワークを探しているわけではないのに、からかって申し訳ありませんが、GORM をスタンドアロンで利用できるようにするリリース 1.1のロードマップにあります。

于 2008-08-27T13:48:38.357 に答える
1

オブジェクト データベースを探している可能性があります。

于 2008-08-26T23:03:07.487 に答える
1

これは、 Microsofy Entity Frameworkが対処しようとしている問題だと思います。「コンパイルする (データベースの変更は自動的に魔法のように行われる)」ように特別に設計されているわけではありませんが、基になるデータ モデルに大きく依存することなく、ドメイン モデルへの変更を処理するという問題に対処します。

于 2008-08-26T23:05:27.307 に答える
1

独自のフレームワーク ( Inon Datamanager )の最初のバージョンを構築したとき、既存の SQL テーブルを読み取り、そこから Java オブジェクトを自動生成するようにしました。

Smalltalkish のバックグラウンドを持つ同僚が 2 番目のバージョンを作成したとき、彼らはオブジェクトから始めて、テーブルを自動生成しました。

実際、私が戻ってきて追加するまで、彼らは SQL の部分を完全に忘れていました。しかし最近では、アプリケーションの起動時にトリガーを実行するだけで、オブジェクト モデルを反復処理し、テーブルとすべての適切な列が存在するかどうかを確認し、存在しない場合はそれらを作成します。とても便利。

これは、予想よりもずっと簡単であることが判明しました。お気に入りのツールが同様のプロセスをサポートしていない場合でも、オブジェクト マッピングに対するリレーショナルが比較的単純であると仮定すると、おそらく数時間で作成できます。

しかし要点は、あなたが文化的に対象者かデータベース担当者かによって異なるようです - どちらかを信頼できる情報源と見なすことができます。

于 2008-08-27T16:16:22.773 に答える
0

ERwin Data Modelerなどの非常に大きな犬の中には、DBに反対するものもあります。ただし、製品を購入するには大金が必要です。

于 2008-08-26T23:13:33.653 に答える
0

はい、Django は問題なく動作します。

はい、データ モデル定義 (Python で記述) から SQL テーブルを生成します。

構造を更新しても、常に既存のテーブルが変更されるとは限りません。ALTER テーブルを手動で実行する必要がある場合があります。

Ruby on Rails にはこれらの機能のさらに高度なバージョン (Rails マイグレーション) がありますが、私はフレームワークがあまり好きではありません。

于 2008-11-15T22:50:24.957 に答える
0

ちょっと遅い答えですが、ここに行きます:

私はまったく同じ問題に直面し、.NET と SQL Server のみを使用して独自のソリューションを作成することになりました。基本的に、説明したプロセスを実装します。

  • すべての DB オブジェクトはCREATE、ソース コードの一部として埋め込みスクリプトとして保持されます
  • データ アクセス機能を使用すると、DB オブジェクトが自動的に (または要求に応じて) セットアップされます。
  • テーブル以外のすべての変更も同時に自動的に (または要求に応じて) 実行されます。
  • データを移行するために特別な注意が必要なテーブルの変更は、データベースのアップグレード時にも (手動で作成された) 変更スクリプトを介して実行されます
  • データベース オブジェクトに加えられた手動の変更も検出できるため、スキーマの整合性を検証して修正することができます。
  • オプションの軽量 ORM は、ストアド プロシージャとオブジェクト、および結果セット (複数の場合もある) をマップできます。
  • コマンドライン アプリケーションは、SQL ソース ファイルと開発データベースとの同期を維持するのに役立ちます。

データベースを含むライブラリは、LGPL ライセンスの下で無料です。

http://code.google.com/p/bsn-modulestore/

于 2010-11-25T23:58:28.990 に答える
0

私はいくつかの「主要な」フレームワークを掘り下げ続けましたが、Django はまさに私が話していたことを実行しているようです。または、このスクリーンキャストからそう思われます。

これについて何かコメントがある人はいますか?うまくいきますか?

于 2008-08-27T15:52:08.387 に答える