3

Entity Framework 4 (コードファースト) と Fluent Migrator を使用するプロジェクトに取り組んでいます。

プロジェクト全体を通して、すべてのスキーマ変更の移行と、さまざまな環境に入力したいテスト データのプロファイルを作成しました。

ただし、すべての環境に入力する「コード」や「ステータス」を挿入するためのベスト プラクティスは何ですか? テーブルの作成時にそれらを指定する必要がありますか、それともテーブル用の特定のプロファイルを作成する必要がありますか?

より具体的には、次のように、データベース用に定義されたアドレス タイプの「コード」テーブルがあります。

[Migration(22)]
public class M0022_CreateAddressTypesTable : Migration
{
    public override void Up()
    {
        Create.Table("AddressTypes")
            .WithColumn("Id").AsInt32().NotNullable().PrimaryKey()
            .WithColumn("Name").AsString(50).NotNullable().WithDefaultValue(string.Empty)
            .WithColumn("Description").AsString(100).NotNullable().WithDefaultValue(string.Empty);
    }

    public override void Down()
    {
        Delete.FromTable("AddressTypes");
        Delete.Table("AddressTypes");
    }
}

では、この機会を利用して、AddressTypes テーブルにもデータを入力する必要があるでしょうか? それとも、それをある種のプロファイルに抽象化する必要がありますか?

どちらにもメリットとデメリットがあるので、他のチームがこの種の状況にどのように対処しているかを知りたいです。

4

1 に答える 1

2

すべての環境でそれらが必要であると確信している場合は、プロファイルではなく移行クラスに「参照データ」を個人的に配置します。

次のような単純なルールを使用すると、メンテナンスとコードの理解が常に容易になります。

プロファイル => 特定の (テスト、その他) データ

移行 => 一般データ

特定のプロファイルは、役に立たない複雑さを追加するだけです (私の謙虚な観点から)。

于 2012-03-01T17:13:21.300 に答える