4

私は本当に簡単なことをしようとしています。EnumCode First ソリューションで as 列型を使用したいと考えています。Entity Framework 5.0 Stable Release を使用しています。

Enum私のラッパークラスとモデルを考えてみましょう:

public class Enums
{
    public enum UserType
    {
        Bronze = 0,
        Silver = 1,
        Gold = 2,
        Admin = 4
    }
}

public class User
{
    public int UserId { get; set; }
    public string UserName { get; set; }
    public Enums.UserType UserType { get; set; }
}

データベースを生成すると、列UserTypeは生成されません。classこのように「ラッパー」を削除するとEnum

public enum UserType
{
    Bronze = 0,
    Silver = 1,
    Gold = 2,
    Admin = 4
}
public class User
{
    public int UserId { get; set; }
    public string UserName { get; set; }
    public UserType UserType { get; set; }
}

それは生成されます!私の最初のセットアップはそれほど一般的ではありませんか、それとも「しないでください」というアプローチですか?

標準化された提案やベスト プラクティス、および/または最初のセットアップが機能しない理由の説明を聞きたいです。

4

2 に答える 2

3

以前にラッパークラスを使用している人を見たことがありませんEnum。もちろん、私が十分に周りを回っていない可能性もあります。enum:) 1 つの名前空間内に多くの定義が含まれているキャッチオール ファイルを見たことがありますが、ラッパー クラスはありませんでした。ラッパー クラスが何かを追加するようには見えません。

@Pawel が言ったように、ネストされた型は EF ではサポートされていません。そして、この種のことは理にかなっています。内側の型をインスタンス化していて、外側の型をインスタンス化していない場合、外側の型のポイントは何ですか?

于 2012-11-26T22:21:38.240 に答える
1

ネストされた型 (列挙型、複合型、またはエンティティ) は、EF ではサポートされていません。

于 2012-11-26T22:19:04.567 に答える