1

エンティティにいくつかのプロパティをモデルに追加したいのですが、そのプロパティはデータベースにも移行スクリプトにも変更を加えません。

これを追加すると:

    public test test1 { get; set; }

    public enum test { asasas, asdasdasd };

空の移行を取得します

    public override void Up()
    {
    }

    public override void Down()
    {
    }

しかし、私が追加すると:

    public String test1 { get; set; }

    public enum test { asasas, asdasdasd };

期待される移行が得られます

    public override void Up()
    {
        AddColumn("dbo.SpiderBatches", "test1", c => c.String());
    }

    public override void Down()
    {
        DropColumn("dbo.SpiderBatches", "test1");
    }

2番目の変更は正しい移行を行うため、クラス/コンテキストが正しく設定され、機能していると想定できます。したがって、エラーは列挙型にある必要があります。

誰かが私をさらに助けることができますか?

4

2 に答える 2

1

列挙型は、.NET 4.5を対象とする場合にのみサポートされ、4.0ではサポートされません。

于 2012-09-28T08:25:26.720 に答える
0

上記の.net4.5の良い答えですが、私のように.net 4.0をサポートする必要がある場合は、モデルにintとして表現するenumプロパティを含めることができます。

2つのこと-

1、参照整合性を破壊する.csファイル内の順序の変更のシナリオを回避するために、以下のように値をハードコーディングします

public enum MyEnum
{
    FirstProperty = 1,
    AskUser = 2,
    IgnoreLine = 3,
    ImportPrice = 4,
    Undecided = 5
}

2-データベースに保存し直すときは、保存する前に列挙型をintとしてキャストする必要があります。

MyEntity.PsuedoEnumProperty = (int)FirstProperty
于 2014-07-15T13:44:59.883 に答える