關於FreeSql使用過程中遇到的一個很嚴重的問題


  現在我們的項目里面FreeSql用得越來越多了,但是前面發現FreeSql有個非常危險的問題。

  在把一個老項目的數據庫轉成FreeSql的時候,數據庫表中有一個字段是長文本的類型,因為前面沒有采用FreeSql庫的,所以原先也是沒有關於StringLength的配置,重構的時候忽略了這個細節,也忘了把這個參數配上。

        private string _Content;
        [Column(StringLength = -2)] public string Content
        {
            get { return _Content; }
            set
            {
                if (_Content != value)
                {
                    NotifyPropertyChanging("Content");
                    _Content = value;
                    NotifyPropertyChanged("Content");
                }
            }
        }

  這樣的后果是,FreeSql配置認為這個字段是varchar(255),並且把mysql數據庫表的字段類型,由longtext改成了varchar(255),並且把原先所有記錄的這個字段的內容都只保留255個字符。

  雖然后面把這個屬性加上了,但是數據卻已經丟失恢復不回來了。

  個人感覺這個是一個非常嚴重的安全漏洞和安全隱患,如果在一些生產環境下的項目,這已經是非常嚴重的事情了。

  不知道怎么樣才能很好地避免這個問題的發生。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM