FluentData微型ORM
2016-04-06 14:59
423 查看
最近在帮朋友做一个简单管理系统,因为笔者够懒,但是使用过的NHibernate用来做这中项目又太不实际了,索性百度了微型ORM,FluentData是第一个跳入我眼睛的词。简单的了解下FluentData使用,主要看看是不是符合笔者的要求。嗯……嗯……反应还不错,API使用也很简单,参数化查询、分页什么的都有了,好了就它了,下面还是本篇的正题,怎么使用它。
这里需要注意的是,FluentData需要.NET4.0的支持,同时支持dynamic,支持的数据库有:
MS SQL Server
MS SQL Server Compact 4.0
MS SQL Azure
MS Access
Oracle
MySQL
SQLite
PostgreSQL
IBM DB2
Sybase
新增使用:
Or
删除使用:
Or
修改使用:
Or
查询使用:
事务使用:
好了,基本简单的使用到此就已经结束了,如果有兴趣的朋友可以去看看这个的源码,这个是开源的,而且拓展性也是很不错的。
1、下载
http://fluentdata.codeplex.com/这里需要注意的是,FluentData需要.NET4.0的支持,同时支持dynamic,支持的数据库有:
MS SQL Server
MS SQL Server Compact 4.0
MS SQL Azure
MS Access
Oracle
MySQL
SQLite
PostgreSQL
IBM DB2
Sybase
2、使用
说说简单的增、删、改、查,创建并且初始化一个IDbContext,函数中第一个参数为数据库链接字符串,第二个参数为数据库类型public static IDbContext Context() { var context = new DbContext().ConnectionString(ConnectionString, new SqlServerProvider()); return context; }
新增使用:
var MembershipId = FluentDataHelper.Context().Sql("insert into Membership(Name,Address) values(@0,@1)").Parameters("张三", "长沙").ExecuteReturnLastId<int>();
Or
var Insert = FluentDataHelper.Context().Insert("Membership") .Column("Name", Name) .Column("Address", Address); if (ImageByte != null) Insert.Column("Image", ImageByte); int MembershipId = Insert.ExecuteReturnLastId<int>();
删除使用:
int RowId = FluentDataHelper.Context().Sql("delete Membership where Id = @Id").Parameter("Id", Id).Execute();
Or
int RowId = FluentDataHelper.Context().Delete("Membership").Where("Id", Id).Execute();
修改使用:
int RowId = FluentDataHelper.Context().Sql("update Membership set Name = @Name where Id = @Id").Parameter("Name", Name).Parameter("Id", EditId).Execute();
Or
var Update = FluentDataHelper.Context().Update("Membership") .Column("Name", Name) .Where("Id", EditId); if (ImageByte != null) Update.Column("Image", ImageByte); int RowId = Update.Execute();
查询使用:
//返回单个值 int RowId = FluentDataHelper.Context().Select<int>("Count(1)") .From("Membership") .Where("Tel = @Tel").Parameter("Tel", Tel) .AndWhere("Id != @Id").Parameter("Id", EditId) .QuerySingle();
//返回实体 MembershipEntity Entity = FluentDataHelper.Context().Select<MembershipEntity>("*") .From("Membership") .Where("Id = @Id").Parameter("Id", EditId) .QuerySingle();
//返回多个对象 List<MembershipGroupEntity> ListGroup = FluentDataHelper.Context().Select<MembershipGroupEntity>("*") .From("MembershipGroup") .QueryMany();
//多表关联及分页 var select = FluentDataHelper.Context() .Select<VehicleEntity>("Vehicle.*,AdminUser.Name as AdminName,Membership.Name as MembershipName,Membership.Tel,Membership.CardId,Membership.Address,Membership.Source") .From("Vehicle left join AdminUser on Vehicle.AdminId = AdminUser.Id left join Membership on Vehicle.MembershipId = Membership.Id") .OrderBy("Vehicle.Time desc") .Paging(pageInfo.PageIndex, pageInfo.PageSize); if (!string.IsNullOrEmpty(Name)) { select.AndWhere("Membership.Name like @Name").Parameter("Name", string.Format("%{0}%", Name)); } if (!string.IsNullOrEmpty(Code)) { select.AndWhere("Code = @Code").Parameter("Code", Code); } this.GridViewVehicle.DataSource = select.QueryMany();
事务使用:
//反生异常,事务自动回滚 using (var context = FluentDataHelper.Context().UseTransaction(true)) { context.Sql("update Membership set Name = @0 where Id = @1") .Parameters("李四", 12) .Execute(); context.Sql("update Product set Name = @0 where Id = @1") .Parameters("Product不存在数据库中", 1) .Execute(); context.Commit(); }
好了,基本简单的使用到此就已经结束了,如果有兴趣的朋友可以去看看这个的源码,这个是开源的,而且拓展性也是很不错的。
相关文章推荐
- 一直在Gradle Build Running导致电脑假死的一种解决办法
- UITableViewCell根据内容自动高度
- pcduino v3B 安装ROS
- iOS多设备UI适配规范方案
- zkui的安装与部署
- ios UIScrollView不能响应TouchesBegin:的事件的解决办法
- 利用Qemu Guest Agent (Qemu-ga) 实现 Openstack 监控平台
- NSOperation、NSOperationQueue
- iOS中UISearchBar(搜索框)使用总结
- The JSP specification requires that an attribute name is preceded by whitespace
- hdu 1242 Rescue BFS+优先队列
- 2016.04.06,英语,《Vocabulary Builder》Unit 10
- 部署zookeeper,zkui,kafka
- leetcode之Range Sum Query - Immutab
- Jenkins上svn: E175002: Processing REPORT request response failed问题的排查过程
- iCheck如何获得id与value
- Android MeasuerSpce using
- (CF#257)B. Jzzhu and Sequences
- Easyui-ComboTree数据填充,递归。树形节点
- 如何为UICollectionView的每一个组设置不同的颜色