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