ormlite servicestack中的枚举和标志支持

 兜兜2013公馆 发布于 2023-02-08 19:25

由于我的错误消息:

An exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll but was not handled in user code

Additional information: Conversion failed when converting the nvarchar value 'AB' to data type int.

我有一个带有AB值的枚举,我想将其保存为整数而不是nvarchar值.我有一个带有flags属性的枚举类似于:[Flags]

public enum VisibleDayOfWeek : int
{
    None = 0,
    Monday = 1,
    Tuesday = 2,
    Wednesday = 4,
    Thursday = 8,
    Friday = 16,
    Saturday = 32,
    Sunday = 64
}

我无法在数据库中保存多天字符串,但我可以保存代表多天的标志值的总和.

我不想在这些枚举属性周围创建一个整数包装器.

枚举的基础类型是字节或整数,那么为什么它保存为字符串/ varchar?这是没有意义的.甚至实体框架在多年后的枚举支持下也是正确的......

这种情况下的解决方案是什么?

似乎这家伙有同样的问题:https://github.com/tapmantwo/enumflags

1 个回答
  • 据我所知,ormlite版本3不支持enum,谁知道下一个版本.你的解决方案只是使用整数包装器的任何方式

    public int VisibleDayOfWeek { get; set; }
    
    [Ignored]
    public VisibleDayOfWeek VisibleDayOfWeekEnum
    {
        get { return (VisibleDayOfWeek)VisibleDayOfWeek; }
        set { VisibleDayOfWeek = (int)value; }
    }
    

    甚至实体框架在多年后也得到了enum支持

    实体框架在版本> 4之后有枚举支持,你也不应该期望很多实体框架是丰富的特色,而ormlite就像它的名字'lite'.

    2023-02-08 19:27 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有