【问题标题】:how to get char column type in mysql as string in entity framework如何将mysql中的char列类型作为实体框架中的字符串
【发布时间】:2023-03-17 16:49:01
【问题描述】:

从 MySql 数据库创建实体模型。 char(16) 类型的表列在实体中转换为 System.Guid。

所有代码都是基于字符串的,因为我之前在应用程序中使用过 Sql Server。现在从 MySql 转换实体后,我遇到了这个问题。在整个代码中,我都有自定义对象,我将它们用作字符串。

尝试使用我阅读的文章中的一些技巧,但没有用。使用旧的连接器/网络完成但没有用。

如何在 mySql 中获取 char 类型的列作为字符串?

【问题讨论】:

    标签: c# mysql entity-framework-5


    【解决方案1】:

    MySQL 和 C# 转换类型不同。 示例:

    对于 C#,varchar 将作为 string 返回

    char 将作为System.GUID返回

    blob 将作为byte[]返回

    据我所知,没有这样的东西可以转换它们。 也许对您来说一个小解决方法是将它们转换为set

          [NotMapped]
          private string _converter { get; set; }
          [Column(TypeName = "char"), StringLength(16)] 
          public string MyProperty 
          {
           get
           {
             return this._converter;
           }
           set
           {
             this._converter = Convert.ToString(value);
           }
          }
    

    【讨论】:

    • 感谢您的快速回复及其正常工作,但是,如果我们有 1 或 2 个实例,我们也可以这样做,我希望当我们刷新模型时,我们会在设置时松开这个自定义属性。我有 37 个实例,我必须使用自定义属性。相反,我将 DB 列类型更改为 Char(35) 而不是 Char(36),然后刷新模型并将列类型更改为字符串。认为这是我能做的最小的改变,它解决了我的问题
    • 是的,更改类型似乎是解决这种情况的最佳方法,但并不完全知道您是如何使用该列的。但是很高兴帮助并看到您找到解决方案:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 2011-11-18
    • 1970-01-01
    相关资源
    最近更新 更多