使用Entity Framework将枚举转换为字符串

4

我有一个类和一些属性。我正在使用Entity Framework与MySQL。在使用add-migration迁移后,它会创建一个INT(11)列。但是我需要VARCHAR,因为我需要部门或学分值。

我尝试了很多次,但都失败了。

我该怎么办?

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

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

将使用CodeFirst,并且您需要以下内容的反向版本https://dev59.com/Q2s05IYBdhLWcg3wG-VR 一个好的文章是http://nodogmablog.bryanhogan.net/2014/11/saving-enums-as-strings-with-entity-framework/ - Orel Eraki
是的,这是正确的。http://nodogmablog.bryanhogan.net/2014/11/saving-enums-as-strings-with-entity-framework/ - Caner
1个回答

1
你的枚举基于整数值,EF将在后台创建一个int列来存储枚举的值。最好将枚举的int值存储在数据库中,而不是它的描述,并使用查找表。然后,您可以使用单个连接简单地获取它们的描述。 您可以使用ef-enum-to-lookup,作者为Tim Abell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接