一、课程导学
当前市面上的 ORM 框架,如 Entity Framework 和 NHibernate,都过于复杂而且难于学习。此外,由于这些框架自身抽象的查询语言以及从数据库到 .NET 对象的映射太过麻烦,导致它们生成的 SQL 都很低效。
FluentData 另辟蹊径,它是一个轻量级框架,拥有简单的 fluent API 并且很容易学会。现在越来越多的.NET企业级开发选择后端的ORM采用FluentData框架。
本系列教程将会从最基本的FluentData安装、配置开始讲起,一步步深入API使用与详细案例与性能优,全程会以【视频+教程】方式呈现,原系我本人的一某在线网站的收费课程,现打算全部公开出去。具体教程公开计划如下:
01_FluentData快速入门
02_FluentData进阶-Query查询
03_FluentData进阶-Mapping
04_FluentData进阶-多结果集&分页查询
05_FluentData进阶-Insert的三种方式
06_FluentData进阶-InsertAndUpdateBuilder&Delete操作
07_FluentData高级-如何操作存储过程
08_FluentData高级-使用事务与Entity Factory
09_FluentData高级-综合示例
我会持续本专题,如你想要获取本套课程课件,源码可在本文后留言给我,我收到后会第一时间回复。你的支持是我持续写作的动力,如你觉得对你有帮助,欢迎点赞,收藏,转发,评论,打赏,谢谢!
二、视频
本章内容:FluentData轻量级.NET ORM持久化技术详解02- Query查询详解
视频链结:FluentData轻量级.NET ORM持久化技术详解02-FluentData查询详解(1)
视频链结:FluentData轻量级.NET ORM持久化技术详解02-FluentData查询详解(2)
三、配套文字教程
1、查询返回一个列表
1.1 、查询返回动态dynamic类型的泛型集合 (new in .NET 4.0):Listproducts = Context.Sql("select * from Product").QueryMany();
示例:QueryListForDynamic (见视频讲解)
1.2、查询返回一个强类型的泛型集合Listproducts = Context.Sql("select * from Product").QueryMany();
示例:QueryListForProduct (见视频讲解)
1.3 、查询返回一个DataTable类型的泛型集合Listlist = Context.Sql("select * from Product").QueryMany();
示例:QueryListForDataTable (见视频讲解)
2、查询返回一个单一项
2.1、查询返回一个动态dynamic类型
核心代码:
dynamic product = Context.Sql(@"select * from Productwhere ProductId = 1").QuerySingle();
示例:QuerySingleItemForDynamic (见视频讲解)
2.2 、查询返回一个强类型对象(Product)
核心代码:
Product product = Context.Sql(@"select * from Productwhere ProductId = 1").QuerySingle();
示例:QuerySingleItemForProduct(见视频讲解)
2.3 、返回一个DataTable
核心代码:
DataTable products = Context.Sql("select * from Product").QuerySingle();
示例:QuerySingleItemForDataTable(见视频讲解)
3、查询返回一个单一值
核心代码:
int numberOfProducts = Context.Sql(@"select count(*)from Product").QuerySingle();
示例:QueryScalerForInt (见视频讲解)
示例:QueryScalerForString (见视频讲解)
4、查询返回一个单一值列表
ListproductIds = Context.Sql(@"select ProductIdfrom Product").QueryMany();
示例:QueryScalerListForInt (见视频讲解)
示例:QueryScalerListForString(见视频讲解)
5、参数化查询
5.1 索引参数
核心代码:
dynamic products = Context.Sql(@"select * from Productwhere ProductId = @0 or ProductId = @1", 1, 2).QueryMany();or:dynamic products = Context.Sql(@"select * from Productwhere ProductId = @0 or ProductId = @1").Parameters(1, 2).QueryMany();
示例:QueryListForIndexParameter (见视频讲解)
5.2 命名查询
核心代码:
dynamic products = Context.Sql(@"select * from Productwhere ProductId = @ProductId1 or ProductId = @ProductId2").Parameter("ProductId1", 1).Parameter("ProductId2", 2).QueryMany();
示例:QueryListForNameParameter (见视频讲解)
5.3 输出参数:
核心代码:
var command = Context.Sql(@"select @ProductName = Name from Productwhere ProductId=1").ParameterOut("ProductName", DataTypes.String, 100);command.Execute();string productName = command.ParameterValue("ProductName");
示例:QueryListForOutParameter (见视频讲解)
5.4 列表参数 - in operator
核心代码:
Listids = new List() { 1, 2, 3, 4 };dynamic products = Context.Sql(@"select * from Productwhere ProductId in(@0)", ids).QueryMany();
示例:QueryListForlistParameter (见视频讲解)