1

面白い質問..

Status フィールドを持つタイプがあります。私の便宜と順序のために、エンティティ型内でこのステータスの列挙型を定義したいと思います。

public class User
{
  public enum Statuses
  {
     Active,
     Suspended
  }

  public int ID { get; set; }
  public Statuses Status { get; set; }
}

何らかの理由で、Status プロパティがデータベースにマップされていません。

面白いことに、User から enum 定義を取得すると、DB にマップされます。

簡単な答えはクラスの外に残すことですが、現在は User 内でスコープされていないため、列挙型に UserStatuses などの長い名前を付ける必要があります。

誰かがその問題に遭遇しましたか? 妥協を始める前に解決策はありますか?

ありがとう!

4

1 に答える 1

0

EF5 は、名前空間で定義されている列挙型のみをサポートします。クラス内で定義された列挙型、または別の列挙型内にネストされた列挙型はサポートされていません。

それが「最も正しい」方法であるかどうかはわかりませんが、列挙型を独自の名前空間 (「列挙型」または類似のもの) に保持し、より意味のある名前 (つまり、UserStatus) を付けることを好みます。「Statuses」と呼ばれる列挙型は一般的すぎるため、半ダースの列挙型定義が浮かんでいると混乱し、さらにアプリケーションに進んでステータス列挙型を他のエンティティに追加する必要があるときに名前空間の衝突が発生する可能性があります。

于 2012-11-02T05:28:39.783 に答える