=====================================================<br/>
# SimpleOrm使用方法
第一步获取连接;第二步注册全局数据提供者,可以注册多个数据库提供者,可以在需要使用不同的数据库来完成任务,但必须利用已注册的连接字符串实例化不同的DB上下文,此部分最好放在全局中;第三步创建DB上下文,不同数据库对应不同DB上下文;第四步DB上下文工厂方法实例化SimpleClient客户端对象,然后就可以使用了,代码如下<br/>
```C# string connectionString = ConfigHelper.GetConnectionString("SqlConnection");
ProviderFactory.RegisterProviderFactory(connectionString, DateProvider.SqlServer);//注册工厂建议放在全局处
DbContext context = new DbContext(connectionString);
StoreSimpleClient<tb_User> client = context.CreateStoreSimpleClient<tb_User>();
var result=client.Query<tb_User>(sql, new { }).FirstOrDefault();//查询数据
```
# 支持强类型和无类型
创建SimpleClient对象内置封装多组操作方法,SimpleClient支持强类型和无类型,由DB上下文创建,使用强类型和无类型属于同一个DB上下文,那么可以在同一个事务中使用两个不同类型的Client,创建方法如下:
``` C#
var nonClient = context.CreateNonSimpleClient();//无类型
StoreSimpleClient<tb_User> client = context.CreateStoreSimpleClient<tb_User>();//强类型
```
# 支持部分更新
``` c#
client.UpdatePart(e => new tb_User() { name = "123", mobile = "15989027156" }, a => a.name == "cxb");
```
# 支持系统事务
系统事务的支持相当简单,只需要显式标志开始和结束即可,也可以根据需要设置事务隔离级别,默认为ReadCommitted读已提交(不可重复度),可以换成其他级别防止不可重复读、幻读;DB上下文标识事务开始和结束,中间增删改语句;
``` C#
context.CreateTransaction();
client.Insert(new tb_User() { mobile = "15989027256", name = "bosco", password = "123456", sex = 1, roleid = 1 });
client.Update(new tb_User { mobile = "15989027255" }, e => e.name == "cxb");
context.CommitTransaction();
```
# 支持分页
这里的分页返回类型为PageList,里面包含PageIndex页面、PageSize页大小、rowCount数据总数、Itemes数据列表(Item是List<TResult>类型),满足一般的需要;
``` C#
int pageindex = 1;
int pagesize = 100;
var nonPagelist = nonClient.GetPageList<UserInfo>(e =>true, pageindex, pagesize);
var pagelist = client.GetPageList(e => true, pageindex, pagesize);
```
# 支持动态SQL查询操作
支持动态SQL,支持匿名参数,返回的是List<TResult>类型,如果想返回单条数据,可以使用QueryFirst方法,将返回类型T,使用QuerySingle方法,就算结果集有多条也只返回一条。</p>
``` C#
var result = client.Query<tb_User>("select * from tb_User", new { });
var resultSingle = client.QuerySingle<tb_User>("select * from tb_User", new { });
```
# 支持DDD-领域模型聚合
DDD中划分聚合和聚合根之后,这里支持动态SQL执行返回结果集后,自定义将聚合关联到聚合根,假设角色是聚合根,用户是它的聚合,当然现实中是不可能的,这里只是假设,方法如下:
``` C#
tb_Role roles=new tb_Role();
client.Query<tb_Role, tb_UserX, tb_Role>("select * from tb_User u left join tb_Role r on u.roleid=r.rid", (tb_Role, tb_UserX) =>
{
if (tb_Role.rid != roles.rid) roles = tb_Role;
roles.UserList.Add(tb_UserX);
return roles;
});
```
# 支持多结果集
使用QueryMultiple方法,返回多结果集对象QueryReader,通过QueryReader对象可以获取多个结果集,免去多次执行查询方法的麻烦,代码如下:
``` C#
QueryReader reader=client.QueryMultiple("select * from tb_User;select * from tb_Role");
List<tb_User> ReadUserList = reader.ReadList<tb_User>().ToList();
List<tb_Role> ReadRoleList = reader.ReadList<tb_Role>().ToList();
```
# 发展方向,下一版本将支持动态类型和linq方法扩展、支持.net core
没有合适的资源?快使用搜索试试~ 我知道了~
一款简单的ORM,简单易用,开发成本极低,该orm支持.net 4.0以上版本.zip
共142个文件
cs:51个
dll:32个
xml:14个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 37 浏览量
2024-01-03
00:06:08
上传
评论
收藏 12.39MB ZIP 举报
温馨提示
一款简单的ORM,简单易用,开发成本极低,该orm支持.net 4.0以上版本,支持多数据库,Oracle、Mysql、Sqlite、Sqlserver、Sqlserver2000,对于oracle本地无需安装客户端,效率比Dapper快或者相当,支持多数据库,DDD聚合根…
资源推荐
资源详情
资源评论
收起资源包目录
一款简单的ORM,简单易用,开发成本极低,该orm支持.net 4.0以上版本.zip (142个子文件)
SimpleMapper.csprojResolveAssemblyReference.cache 45KB
SimpleMapperUse.csprojResolveAssemblyReference.cache 41KB
DesignTimeResolveAssemblyReferencesInput.cache 7KB
DesignTimeResolveAssemblyReferencesInput.cache 7KB
DesignTimeResolveAssemblyReferences.cache 711B
App.config 402B
SimpleMapperUse.exe.config 402B
SimpleMapperUse.vshost.exe.config 402B
packages.config 131B
repositories.config 131B
DBProviderHelper.cs 39KB
OrmDBProviderFactory.cs 33KB
Program.cs 28KB
SqlMapper.cs 26KB
AbstractMapper.cs 11KB
SimpleClient.cs 10KB
QueryTranslator.cs 7KB
DataMap.cs 5KB
QueryReader.cs 3KB
ProviderFactory.cs 2KB
BaseProvider.cs 2KB
DbContext.cs 2KB
ColumnMap.cs 2KB
Sqlserver2000Provider.cs 2KB
SqlerverProvider.cs 2KB
OracleProvider.cs 2KB
QueryObjectSimpleClient.cs 2KB
SqliteProvider.cs 2KB
MysqlProvider.cs 2KB
Check.cs 1KB
QueryObjectStrategy.cs 1KB
AssemblyInfo.cs 1KB
AssemblyInfo.cs 1KB
ErrorMessage.cs 1KB
Metadata.cs 1KB
tb_User.cs 1KB
StringHelper.cs 784B
Condition.cs 767B
UserRecord.cs 760B
TextTemplate.cs 709B
ConfigHelper.cs 703B
PageList.cs 646B
RepositoryContext.cs 540B
tb_Role.cs 537B
PrimaryKeyAttribute.cs 537B
PrimaryKeyAttribute.cs 537B
User.cs 533B
UnitOfWork.cs 510B
NullExtenssion.cs 437B
ColumnAttribute.cs 407B
TableAttribute.cs 398B
IQueryStrategy.cs 389B
ResultSetAttribute.cs 356B
SimpleException.cs 267B
QueryExtenssion.cs 247B
TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs 0B
TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs 0B
TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs 0B
TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs 0B
TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs 0B
TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs 0B
SimpleMapper.csproj 8KB
SimpleMapperUse.csproj 4KB
Simple.db 20KB
Simple.db 12KB
EntityFramework.dll 4.83MB
Oracle.ManagedDataAccess.dll 3.87MB
Oracle.ManagedDataAccess.dll 3.87MB
SQLite.Interop.dll 1.4MB
SQLite.Interop.dll 1.13MB
EntityFramework.SqlServer.dll 567KB
Castle.Core.dll 432KB
Castle.Core.dll 430KB
Castle.Core.dll 429KB
MySql.Data.dll 415KB
MySql.Data.dll 415KB
System.Data.SQLite.dll 312KB
System.Data.SQLite.dll 312KB
System.Data.SQLite.dll 312KB
Castle.Core.dll 258KB
Moq.dll 187KB
System.Data.SQLite.Linq.dll 182KB
Moq.dll 169KB
Dapper.dll 142KB
Dapper.dll 142KB
Dapper.dll 139KB
Dapper.dll 118KB
Dapper.dll 118KB
Dapper.dll 112KB
SimpleMapper.dll 78KB
SimpleMapper.dll 78KB
SimpleMapper.dll 78KB
SimpleMapper.dll 63KB
TextTemplate.txt.dll 4KB
TextTemplate.fileNameExtension.dll 4KB
TextTemplate1.txt.dll 3KB
TextTemplate.cs.dll 3KB
sqlite3.exe 709KB
SimpleMapperUse.vshost.exe 22KB
SimpleMapperUse.exe 17KB
共 142 条
- 1
- 2
资源评论
马coder
- 粉丝: 1200
- 资源: 6602
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 笔记实验六,spark,大数据分析
- ####蓝桥杯python的详细的信息介绍
- 电子万年历软件仿真(经过多次修改,保证正确性)
- Unity XR 手势射击控制脚本(适用于任何可手势识别的设备)
- 机械设计全自动电表(NB和IC卡表)控制和上壳装配线sw16可编辑非常好的设计图纸100%好用.zip
- 基于matlab的EAN-13条形码识别系统GUI界面.zip代码53
- matlab基于bp神经网络交通信号标志识别GUI界面13个标志.zip代码54
- 电子万年历答辩实物展示视频mp4格式
- 基于python实现的程序,包括哈希感知算法cvHash,图像切割cvsplit,固定目标检测cvRec(附文档ppt)等
- 计算0-10000之间所有偶数的和
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功