2016-10-01 20 views
3

私はクラスを持っています。私はMysqlでEntity Frameworkを使用しています。 add-migrationを使用して移行した後、INT(11)列が作成されます。 しかし、VARCHARが必要です。私はDeptまたはCreditの値が必要です。Entity Frameworkで文字列を列挙する

私はたくさん試しましたが、それはしませんでした。

どうすればいいですか?

public class trns 
{ 
    public trans_type enm_trans_type { get; set; } 
} 

public enum trans_type { 
    [Description("Dept")] 
    Dept, 
    [Description("Credit")] 
    Credit 
} 
+0

CodeFirstを使用することになり、次の逆のバージョンが必要になります。http://stackoverflow.com/questions/7437952/map-string-column-in-entity-framework-to-enum http://nodogmablog.bryanhogan.net/2014/11/saving-enums-as-strings-with-entity-framework/ –

+0

はい、これは正しいです。 http://nodogmablog.bryanhogan.net/2014/11/saving-enums-as-strings-with-entity-framework/ – caras

答えて

1

列挙型は整数値に基づいており、EFは列挙型の値を格納するためにシーンの背後にint列を作成します。 descriptionの代わりにenumnのint値をデータベースに格納し、ルックアップテーブルを使用する方がよいでしょう。次に、単一の結合を使用してそれらの説明を取得できます。 ef-enum-to-lookupTim Abellを使用できます。

関連する問題