VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • C#教程之轻量ORM-SqlRepoEx (三)Select语句(2)

 

四、一个简单的Select调用

            var repository = RepoFactory.Create<Customers>();

            var results = repository.Query()

                                    .Select(e => e.CustomerID, e => e.ContactName, e => e.CompanyName)

                                    .OrderBy(e => e.CustomerID)

                                    .Top(20)

                                    .Go();

 

  foreach (var item in results)

            {

                Console.WriteLine($"{item.CustomerID}\t {item.ContactName}\t\t {item.CompanyName} ");

            }

得到如下结果:

 

如果需要打印当前查询的SQL语句,而不是运行只需要调用Sql():

 

var results2 = repository.Query()

    .Select(e => e.CustomerID, e => e.ContactName, e => e.CompanyName)

    .OrderBy(e => e.CustomerID)

    .Top(20)

    .Sql();

 

得到如下结果:

SELECT TOP (20) [dbo].[Customers].[CustomerID]

, [dbo].[Customers].[ContactName]

, [dbo].[Customers].[CompanyName]

FROM [dbo].[Customers]

ORDER BY [dbo].[Customers].[CustomerID] ASC;

 

四、Select

1、实例一个查询实例的Repository

2、调用Repository 的Query() 获取一个查询类SelectStatement实例,此类实现大多数SQL查询场景;

3、SelectStatement有两个重要的方法

(1)、Sql()方法,此方法会返回当前repository.Query()的实际SQL语句;

(2)、Go()方法,此方法可将当前Select返回一个IEnumerable<TEntity>结果,另外,SelectStatement还实现了 ListEntityGo<TLEntity>()方法,返回一个List<TEntity>;

4、repository.Query()可简单的调用 repository.Query().Go(),这样会返回完整的实例集;其效果与repository.Query().SelectAll().Go();是一样的,但SelectAll()可以指定当前查询别名。、;

5、如果只需要返回数据集的部分字段数据,可以采用Select(e => e.CustomerID, e => e.ContactName, e => e.CompanyName)的表达示来获取特定列的数据;

 

 

 

 

有兴趣的请在QQ群中参与讨论、联系作者 QQ群名称:.Net 高效开发 ,QQ群号:747049962
也可发邮件至:azthinker@sina.com
GitHub的https://github.com/azthinker
开源中国 https://gitee.com/azthinker

相关教程
关于我们--广告服务--免责声明--本站帮助-友情链接--版权声明--联系我们       黑ICP备07002182号