使用开源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=....})时会出现上述错误。

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上执行,结果如下:

扫描二维码关注公众号,回复: 11268225 查看本文章

 所以找到了问题所在。

猜你喜欢

转载自www.cnblogs.com/dayang12525/p/12958165.html