使用实体框架将枚举名称存储在数据库中

2024-04-28

public enum Currency
  {
     EUR = 1,
     USD = 2,
     GBP = 3
   }

假设我有一个如上所示的枚举。如果我要使用实体框架(代码优先)来使用它,那么int值将存储在数据库中。不存储查找表,也不存储枚举值的字符串名称,这使得直接读取数据库数据变得困难。

有没有办法让 EF 为枚举创建查找表?


你可以尝试这样的事情,这更容易......

public enum Currency
{
    EUR = 1,
    USD = 2,
    GBP = 3
}

public class YourClassName
{
    [Column("Currency")]
    public string CurrencyString
    {
        get { return Currency.ToString(); }
        private set { Currency = EnumExtensions.ParseEnum<Currency>(value); }
    }

    [NotMapped]
    public Currency Currency;
}

public class EnumExtensions
{
    public static T ParseEnum<T>(string value)
    {
        return (T)Enum.Parse(typeof(T), value, true);
    }
}

source: 布莱恩霍根的例子 http://nodogmablog.bryanhogan.net/2014/11/saving-enums-as-strings-with-entity-framework/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用实体框架将枚举名称存储在数据库中 的相关文章

  • 实体框架 6 - 使用我的 getHashCode()

    这篇文章需要了解一定的背景知识 请耐心等待 我们有一个使用 EF 的 n 层 WPF 应用程序 我们通过 dbContext 将数据从数据库加载到 POCO 类中 dbContext 被销毁 然后用户可以编辑数据 我们使用 Julie Le
  • 如何简单地添加指向 Spring Data REST 实体的链接

    我有带有 Spring Data JPA 的实体 但为了生成有关它们的统计信息 我在 Spring 中使用 jOOQ Repository 由于我的方法返回一个List的实体 或Double 我如何将它们公开为链接 假设我有一个User实体
  • LINQ 按降序排序,底部为空值 [重复]

    这个问题在这里已经有答案了 我有这样的表达 troubletickets db ServiceTickets Include t gt t Company Include t gt t UserProfile troubletickets
  • 为什么实体框架尝试选择所有列,即使我只指定了两列?

    我继承了一个 ASP MVC 项目 该项目使用 Entity Framework 6 1 3 与 Dynamics CRM 2011 SQL 数据库进行交互 我正在使用此查询来尝试获取具有帐号的所有活动帐户 并且我仅选择两列为匿名类型 va
  • EF6 找不到 LocalDBConnectionFactory

    我有 2 个项目 类库 作为 DAL 层 和 ASP NET MVC 项目 作为 UI 为了获取数据 我尝试使用 EF6 但它不起作用 所有异常文本 EntityFramework dll 中发生 System InvalidOperati
  • NotSupportedException:LINQ to Entities 无法识别该方法[重复]

    这个问题在这里已经有答案了 我正在尝试使此查询与 EF 一起使用 但它抛出异常 var c ac Communities OrderBy o gt o Posts Count Skip page limit Take limit Selec
  • 实体框架以错误的顺序插入子对象

    Question 为什么 EF 首先在它所依赖的对象 TimesheetActivity 之前插入具有依赖项的子对象 PersonnelWorkRecord 另外我有哪些纠正这个问题的选择 ERD 简化 This is predefined
  • 使用 DI 将参数传递给 DbContext

    我想向 DBContext 传递一个附加参数 如下所示 string myParam xx string con connenctionstring services AddDbContext
  • 如何在 MVC4 的 UserProfile 中创建自定义附加字段

    我遇到了新的 ASP MVC 4 功能 它附带了新的成员资格数据库模式和新的初始化 在 mvc 3 和旧版本中 开发人员能够使用 web config 中的规范创建自定义用户配置文件字段 但现在我面临默认 mvc 4 项目中过滤器命名空间中
  • 同时使用实体框架与 SQL Server 和 SQLite 数据库

    我有一个用于测试目的的 C Net 4 0 控制台应用程序 使用 VS 2012 我的目标是能够创建一个可在 MS SQL Server 数据库和 SQLite 数据库上使用的单个实体框架 edmx 文件 基本上 我想使用相同的实体模型类和
  • 使用更新的值重新加载实体框架上下文中的对象

    我有一个从数据库中提取的 EF 对象 然后 我通过使用另一个函数调用来更新数据库中的相应行DBContext 在此更新之后 我想使用更新后的内容重新加载对象的内容 但是 EF 上下文似乎缓存了这些内容 这是代码示例 我删除了一些不相关的内容
  • 如何在 Entity Framework 4.4 中实现 DBSet.AddOrUpdate?

    回应 Slauma 对我的问题的回答关于在 Windows XP 上运行使用 EF 的应用程序 https stackoverflow com questions 17963417 can i implement entity framew
  • 抑制实体框架核心中的 SQL 查询日志记录

    我有一个使用实体框架核心的控制台 net core 应用程序 该应用程序使用日志框架写入文件和控制台 serviceProvider new ServiceCollection AddLogging AddDbContext
  • .NET 实体框架核心

    我已经阅读了过去两年中发布的几乎所有有关 EF 的其他问题 我下载其他软件包没有任何问题 只是实体框架不会为我安装 我什至尝试安装最新版本的 Nuget 并在我的项目目录中使用它的工具来恢复包 之后 我将这一行添加到我的 csproj 中
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • 从备用位置获取实体框架连接字符串?

    如何从自定义配置文件而不是 web config 检索 Entity Framework 4 连接字符串 编辑 删除默认构造函数生成的代码并在分部类中重新创建它以使用拉入的连接字符串是否合理 我真的很想避免使用包括连接字符串在内的重载方法更
  • 实体框架 - SQL Server 2005 - IIS 服务器日期时间问题

    我正在使用 MVC3 和实体框架 在我的应用程序中 我需要通过 EF 调用 SQL Server 2005 中的存储过程来根据以下内容搜索一些数据datetime传递的参数 在当地环境中一切似乎都运行良好 但是将其托管到 IIS 后 我在尝
  • EF4如何在多对多关系中公开联接表

    假设我有以下表格 Essence EssenceSet 和 Essence2EssenceSet 其中 Essence2EssenceSet 仅保存前 2 个表的 ID 以形成 M M 关系 在 EF 中 由于 Essence2Essenc
  • 实体框架 - 相关的 ICollection 被具体化为 HashSet

    我在我的项目中使用实体框架 POCO 代理 延迟加载 今天我很惊讶地看到这个班级Transaction有其相关合集Rows物化为HashSet 代替EntityCollection 我需要EntityCollection用于跟踪集合中的更改
  • 如何在Azure Function的应用程序设置中定义providername属性

    我正在尝试在我的 Azure 函数中建立实体框架数据库连接 因此我需要在函数的应用程序设置中定义一个连接字符串 仅在 Azure 门户中添加一个以我的 DbContext 类名作为键的连接字符串会导致异常 因为连接到数据库时 provide

随机推荐