Dapper1.5学习笔记1
来源:互联网 发布:淘宝活动在哪里报名 编辑:程序博客网 时间:2024/06/16 09:21
基本的Execute操作
注:ConnectViaOledb() 返回一个连接对象
获取一个连接的方法
protected static SqliteConnection GetSqliteConnection(bool open = true) { var connection = new SqliteConnection("Data Source=:memory:"); if (open) connection.Open(); return connection; }
1,插入单条数据
public void PseudoPositionalParameters_ExecSingle() { using (var connection = <span style="font-family: Arial, Helvetica, sans-serif;">GetSqliteConnection</span>( true ) ) { var data = new { x = 6 }; connection.Execute("create table #named_single(val int not null)"); int count = connection.Execute("insert #named_single (val) values (?x?)", data); int sum = (int)connection.ExecuteScalar("select sum(val) from #named_single"); count.IsEqualTo(1); sum.IsEqualTo(6); } }
2,插入多条数据
public void PseudoPositionalParameters_ExecMulti() { using (var connection = <span style="font-family: Arial, Helvetica, sans-serif;">GetSqliteConnection</span><span style="font-family: Arial, Helvetica, sans-serif;">( true ) </span><span style="font-family: Arial, Helvetica, sans-serif;">)</span> { var data = new[] { new { x = 1, y = 1 }, new { x = 3, y = 1 }, new { x = 6, y = 1 }, }; connection.Execute("create table #named_multi(val int not null)"); int count = connection.Execute("insert #named_multi (val) values (?x?)", data); int sum = (int)connection.ExecuteScalar("select sum(val) from #named_multi"); count.IsEqualTo(3); sum.IsEqualTo(10); } }
3,查询
public void Issue466_SqliteHatesOptimizations() { using (var connection = <span style="font-family: Arial, Helvetica, sans-serif;"> </span><span style="font-family: Arial, Helvetica, sans-serif;">GetSqliteConnection</span><span style="font-family: Arial, Helvetica, sans-serif;">( true ) </span><span style="font-family: Arial, Helvetica, sans-serif;">)</span> { SqlMapper.ResetTypeHandlers(); var row = connection.Query<HazNameId>("select 42 as Id").First(); row.Id.IsEqualTo(42); row = connection.Query<HazNameId>("select 42 as Id").First(); row.Id.IsEqualTo(42); SqlMapper.ResetTypeHandlers(); row = connection.QueryFirst<HazNameId>("select 42 as Id"); row.Id.IsEqualTo(42); row = connection.QueryFirst<HazNameId>("select 42 as Id"); row.Id.IsEqualTo(42); } }
4,异步查询操作
public async Task Issue466_SqliteHatesOptimizations_Async() { using (var connection = <span style="font-family: Arial, Helvetica, sans-serif;"> </span><span style="font-family: Arial, Helvetica, sans-serif;">GetSqliteConnection</span><span style="font-family: Arial, Helvetica, sans-serif;">( true ) </span><span style="font-family: Arial, Helvetica, sans-serif;">)</span> { SqlMapper.ResetTypeHandlers(); var row = (await connection.QueryAsync<HazNameId>("select 42 as Id")).First(); row.Id.IsEqualTo(42); row = (await connection.QueryAsync<HazNameId>("select 42 as Id")).First(); row.Id.IsEqualTo(42); SqlMapper.ResetTypeHandlers(); row = await connection.QueryFirstAsync<HazNameId>("select 42 as Id"); row.Id.IsEqualTo(42); row = await connection.QueryFirstAsync<HazNameId>("select 42 as Id"); row.Id.IsEqualTo(42); } }
5,执行单个操作
private void Isse467_SqliteParameterNaming(bool prefix) { using (var connection =<span style="font-family: Arial, Helvetica, sans-serif;"> </span><span style="font-family: Arial, Helvetica, sans-serif;">GetSqliteConnection</span><span style="font-family: Arial, Helvetica, sans-serif;">( true ) </span><span style="font-family: Arial, Helvetica, sans-serif;">)</span> { var cmd = connection.CreateCommand(); cmd.CommandText = "select @foo";#if NET40 || NET45 const DbType type = DbType.Int32;#else const SqliteType type = SqliteType.Integer;#endif cmd.Parameters.Add(prefix ? "@foo" : "foo", type).Value = 42; var i = Convert.ToInt32(cmd.ExecuteScalar()); i.IsEqualTo(42); } }
6,单个查询操作query
public void GetOnlyProperties() { using ( var connection = GetSqliteConnection( true ) ) { var obj = connection.QuerySingle<HazGetOnly>("select 42 as [Id], 'def' as [Name];"); obj.Id.IsEqualTo(42); obj.Name.IsEqualTo("def"); } } class HazGetOnly { public int Id { get; } public string Name { get; } = "abc"; }
0 0
- Dapper1.5学习笔记1
- flex1.5 学习笔记 1
- jQuery学习笔记1-5
- django1.5学习笔记(1)
- [笔记]JavaScript学习笔记(1)
- 算法笔记 ---- 学习笔记 1
- c++学习笔记学习笔记1
- 机器学习-学习笔记1
- 学习笔记:git学习1
- 机器学习学习笔记1
- Nutch 1.3 学习笔记 5-1 FetchThread
- Nutch 1.3 学习笔记 5-1 FetchThread
- iOS学习笔记5-UIViewController(1)
- Android学习笔记5:常用控件(1)
- 【Effective STL】条款1-5学习笔记
- Nutch 1.3 学习笔记 5-1 FetchThread
- html 5 学习笔记-重要知识点 1
- cocos2dx3.2 学习笔记(5)--LabelTest(1)
- ubuntu下安装sqlite3出现的一个小问题
- 移动端在页面输出调试信息
- C语言常见面试题
- Hive常用字符串函数
- 6174问题
- Dapper1.5学习笔记1
- MySQL基本数据类型
- angular路由两种锚点
- 机器人仿真 软件 V-REP 入门教程 (一)简介
- Android自定义Notification并没有那么简单
- invalidate()等相关方法分析
- 第四周项目3-单链表应用(2)
- ContentProviderOperation批量操作提升性能
- Git常用命令