使用開源ORM框架Sqlsugar項目時發現的Bug


1、項目中使用的ORM是Sqlsugar。在使用.where(...).select(...)時發現一個問題

如果select(x=>new A(){})。這樣是沒有問題的,但是如果類A中有個屬性,其類型是B,就無法查詢。查詢報錯信息是:Unknown column 'Title' in 'field list'。

用EF試了下是課的

例如:

   public class TestA
    {
        public string Name { get; set; }

        public TestB TB { get; set; }
    }
    public class TestB
    {
        public string Title { get; set; }
    }

在select(x=>new A(){TB=....})時會出現上述錯誤。

var temp = db.Queryable<StudentModel>().Select(x => new TestA()
            {
                title = x.Name,
                TB = new
               TestB()
                { Title = x.Name }
            }).FirstAsync();

 

2、開始調試Sqlsugar的源碼:寫調試代碼,一步步調試。 發現在AdoProvider中的方法GetDataReaderAsync里,生成的sql命令是這樣的:

SELECT  `Name` AS `title` , `Name` AS `Title` , `Title` AS `TestB.Title`  FROM `Student`    ORDER BY NOW()  LIMIT 0,1

 

 

 

拿到Navicat上執行,結果如下:

 

 找到了問題所在。

3、在github上提出issue:

https://github.com/sunkaixuan/SqlSugar/issues/725

 


免責聲明!

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



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