【问题标题】:Database field Enum to C# List [closed]数据库字段枚举到 C# 列表 [关闭]
【发布时间】:2013-12-31 02:03:59
【问题描述】:

在我的数据库中,我有一个 Enum 字段。我想将这些枚举属性放在 C# 中的列表中。 我搜索但找不到答案。这可能吗? 我使用 MySqlDatabase。如果我想从我使用的数据库中获取行:

using (var uow = new UnitOfWorkScope<TrackerEntities>(UnitOfWorkScopePurpose.Reading))

在我的应用程序中,我使用实体框架

【问题讨论】:

  • 什么样的数据库? MySql?
  • 您使用什么类型的数据访问?
  • 也接受您的一些问题的一些答案。您有 12 个未接受的问题。
  • 我更新了我的问题。有时我不能接受一些答案,因为没有答案。有时我解决了自己的问题,但我必须等待 2 天才能回答,然后我忘记更新了。

标签: c# mysql database list enums


【解决方案1】:

如果您在数据读取器中加载数据,但这是sql-server 方式。但是这里的重点是将string转换成enum

var list = new List<YourEnumType>();

var field= reader["DBFieldName"] != DBNull.Value ? reader["DBFieldName"].ToString()
                                                   : "";
var myField=(YourEnumType) Enum.Parse(typeof(YourEnumType ), field);    

list.Add(myField);

也可以看看The ENUM Type

【讨论】:

  • 我不使用阅读器。我有一个实体框架
  • @Jeffrey:你见过this吗??
  • @Jeffrey,这就是我问你使用什么类型的数据访问的原因。如果你只问半个问题,那么你的答案将毫无用处。
【解决方案2】:

您需要对架构表进行查询以列出枚举值。

SELECT COLUMN_TYPE 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TABLE_NAME AND 
      COLUMN_NAME = @COLUMN_NAME

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多