使用阿里云 rds MYSQL数据库用的用户注意 返回

SqlSugar 老数据
6 1927

如果你使用的是.Net Core 那么请把你的  sqlsuagrcore换成 sqlSugarCore.MySqlConnector 


因为mysql.data驱动和阿里云 通过域名连接的mysql数据库 存在不兼容 ,可以用MySqlConnector驱动解决这个问题 

热忱回答6

  • 或者用 cap 2.6版本以上的用户也使用  sqlSugarCore.MySqlConnector 

    0 回复
  • 粤叶 粤叶 VIP0
    2020/12/8

    @fate stay night:发现一个 sqlSugarCore.MySqlConnector   与 sqlSugarCore 不兼容的地方

    枚举类型 作为查询条件,存在无法转换的问题 sqlSugarCore  可以默认转换    sqlSugarCore.MySqlConnector 不可以

    eg:

    表:

    	/// <summary>
    	/// 系统全局配置开启关闭配置
    	/// </summary>
    	[SugarTable("t_switch_config", "系统全局配置开启关闭配置")]
    	public class t_switch_config
    	{
    		/// <summary>
    		/// 中文别名
    		/// </summary>
    		[SugarColumn(ColumnName = "alias", ColumnDescription = "中文别名", Length = 128)]
    		public string alias { get; set; }
    
    		/// <summary>
    		/// 开关名称
    		/// </summary>
    		[SugarColumn(ColumnName = "title", ColumnDescription = "开关名称", Length = 128)]
    		public string title { get; set; }
    		/// <summary>
    		/// 学校编号
    		/// </summary>
    		[SugarColumn(ColumnName = "company_id", ColumnDescription = "学校编号", Length = 50)]
    		public string company_id { get; set; }
    
    		/// <summary>
    		/// 配置值 0否定意义1肯定意义
    		/// </summary>
    		[SugarColumn(ColumnName = "value", ColumnDescription = "配置值 0否定意义1肯定意义")]
    		//[Range(0, 1)]
    		public bool value { get; set; }
    
    
    		/// <summary>
    		/// 主键
    		/// </summary>
    		[SugarColumn(ColumnName = "id", ColumnDescription = "主键", IsIdentity = true, IsPrimaryKey = true)]
    		public int id { get; set; }
    
    
    	}

    数据库数据:

    image.png

    枚举:

    public enum SwitchTitle
    	{
    
    		
            /// <summary>
    	        /// 是否开启作业快速评价
    	        /// </summary>
    	        [DefaultValue(true)]
            [Description("是否开启作业快速评价")]
            EnableHomeWorkFastEvaluation,
    
            /// <summary>
            /// 是否开启作业文字评价
            /// </summary>
            [DefaultValue(true)]
            [Description("是否开启作业文字评价")]
            EnableHomeWorkTextEvaluation,
    
          
        }

    代码:

    sqlSugarCore  不会报错       sqlSugarCore.MySqlConnector 会报错

    public t_switch_config GetModelByCompanyIdAndType(string companyId, SwitchTitle typeCode)
    {    // typeCode enum
        //title string 
        //var typeCodeStr = typeCode.ToString();
        return this.FirstOrDefaultAsync(t => t.company_id.Equals(companyId) && t.title.Equals(typeCode))
    }

    错误信息:

    Unable to cast object of type 'Vschool.Common.Enum.SwitchTitle' to type 'System.Int64


    0 回复
  • @粤叶:收到


    0 回复
  • @粤叶t.title.Equals(typeCode.tostring()) 这样可以解决吗

    0 回复
  • 粤叶 粤叶 VIP0
    2020/12/8

    应该不行的,后面 .tostring() 方法需要前提不能放到lambda 表达式

    0 回复
  • @粤叶:下个版本兼容你先提出来

    0 回复