如何将枚举值保存到数据库?

发布于 2024-10-26 03:44:29 字数 422 浏览 1 评论 0原文

例如:

namespace PizzaSoftware.Data
{
    public class User
    {
        public string Username { get; set; }
        public string Password { get; set; }
        public Permission PermissionType { get; set; }
    }

    public enum Permission
    {
        Basic,
        Administrator
    }
}

如果我要使用Entity-Framework的CodeFirst,我该如何保存这个值?

这是针对 Windows 窗体桌面应用程序的。

谢谢你!

For example:

namespace PizzaSoftware.Data
{
    public class User
    {
        public string Username { get; set; }
        public string Password { get; set; }
        public Permission PermissionType { get; set; }
    }

    public enum Permission
    {
        Basic,
        Administrator
    }
}

If if I were to use Entity-Framework's CodeFirst, how can I save this value?

This is for a Windows Forms, Desktop application.

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你丑哭了我 2024-11-02 03:44:29

您可以检索 int 值(或您将枚举设置为的任何类型)一个简单的转换并将其保存到数据库中。

要读回它,您可以从 int 转换回 enum:

Permission enumValue = (Permission)intValue;

You can retrieve the int value (or whatever type you have your enum set to) via a simple cast and save that to the DB.

And to read it back out, you'd cast from int back to enum:

Permission enumValue = (Permission)intValue;
最舍不得你 2024-11-02 03:44:29

您需要了解枚举只是一组命名常量。这里引用msdn的一段话:

enum 关键字用于声明枚举,这是一种不同的类型,由一组称为枚举器列表的命名常量组成。每个枚举类型都有一个基础类型,它可以是除 char 之外的任何整型。枚举元素的默认基础类型是 int。默认情况下,第一个枚举器的值为 0,后续每个枚举器的值都会增加 1。

因此,要将值存储在数据库中,您只需存储基础类型并根据需要进行强制转换/解析。

You need to understand that an enum is just a set of named constants. Here is a quote from msdn:

The enum keyword is used to declare an enumeration, a distinct type consisting of a set of named constants called the enumerator list. Every enumeration type has an underlying type, which can be any integral type except char. The default underlying type of the enumeration elements is int. By default, the first enumerator has the value 0, and the value of each successive enumerator is increased by 1.

So to store the value in the database you just store the underlying type and cast/parse as needed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文