51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2016|回复: 3
打印 上一主题 下一主题

FluentData微型ORM

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-4-27 11:03:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、下载


  这里需要注意的是,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,函数中第一个参数为数据库链接字符串,
第二个参数为数据库类型

  1. public static IDbContext Context()
  2.         {
  3.             var context = new DbContext().ConnectionString(ConnectionString, new SqlServerProvider());
  4.             return context;
  5.         }
  6. 新增使用:

  7. var MembershipId = FluentDataHelper.Context().Sql("insert into Membership(Name,Address) values(@0,@1)").Parameters("张三", "长沙").ExecuteReturnLastId<int>();
  8. Or

  9. 复制代码
  10. var Insert = FluentDataHelper.Context().Insert("Membership")
  11.                       .Column("Name", Name)
  12.                       .Column("Address", Address);     
  13.    
  14.                 if (ImageByte != null)
  15.                     Insert.Column("Image", ImageByte);

  16.                 int MembershipId = Insert.ExecuteReturnLastId<int>();
复制代码

复制代码
删除使用:

  1. int RowId = FluentDataHelper.Context().Sql("delete Membership where Id = @Id").Parameter("Id", Id).Execute();
  2. Or

  3. int RowId = FluentDataHelper.Context().Delete("Membership").Where("Id", Id).Execute();
  4. 修改使用:

  5. int RowId = FluentDataHelper.Context().Sql("update Membership set Name = @Name where Id = @Id").Parameter("Name", Name).Parameter("Id", EditId).Execute();
  6. Or

  7. 复制代码
  8. var Update = FluentDataHelper.Context().Update("Membership")
  9.                      .Column("Name", Name)
  10.                      .Where("Id", EditId);

  11.                 if (ImageByte != null)
  12.                     Update.Column("Image", ImageByte);

  13.                 int RowId = Update.Execute();
复制代码

复制代码
查询使用:

复制代码
//返回单个值
  1. int RowId = FluentDataHelper.Context().Select<int>("Count(1)")
  2.                          .From("Membership")
  3.                          .Where("Tel = @Tel").Parameter("Tel", Tel)
  4.                         .AndWhere("Id != @Id").Parameter("Id", EditId)
  5.                          .QuerySingle();
  6. 复制代码
  7. //返回实体
  8. MembershipEntity Entity = FluentDataHelper.Context().Select<MembershipEntity>("*")
  9.                     .From("Membership")
  10.                     .Where("Id = @Id").Parameter("Id", EditId)
  11.                     .QuerySingle();
  12. //返回多个对象
  13. List<MembershipGroupEntity> ListGroup = FluentDataHelper.Context().Select<MembershipGroupEntity>("*")
  14.                 .From("MembershipGroup")
  15.                 .QueryMany();
  16. 复制代码
  17. //多表关联及分页
  18. var select = FluentDataHelper.Context()
  19.                   .Select<VehicleEntity>("Vehicle.*,AdminUser.Name as AdminName,Membership.Name as MembershipName,Membership.Tel,Membership.CardId,Membership.Address,Membership.Source")
  20.                   .From("Vehicle left join AdminUser on Vehicle.AdminId = AdminUser.Id left join Membership on Vehicle.MembershipId = Membership.Id")
  21.                   .OrderBy("Vehicle.Time desc")
  22.                   .Paging(pageInfo.PageIndex, pageInfo.PageSize);

  23.             if (!string.IsNullOrEmpty(Name))
  24.             {
  25.                 select.AndWhere("Membership.Name like @Name").Parameter("Name", string.Format("%{0}%", Name));
  26.             }
  27.             if (!string.IsNullOrEmpty(Code))
  28.             {
  29.                 select.AndWhere("Code = @Code").Parameter("Code", Code);
  30.             }

  31.             this.GridViewVehicle.DataSource = select.QueryMany();
复制代码

复制代码
事务使用:

复制代码
//反生异常,事务自动回滚
  1. using (var context = FluentDataHelper.Context().UseTransaction(true))
  2.                 {
  3.                     context.Sql("update Membership set Name = @0 where Id = @1")
  4.                                 .Parameters("李四", 12)
  5.                                 .Execute();

  6.                     context.Sql("update Product set Name = @0 where Id = @1")
  7.                                 .Parameters("Product不存在数据库中", 1)
  8.                                 .Execute();
  9.                     context.Commit();
  10.                 }
复制代码

复制代码
好了,基本简单的使用到此就已经结束了,如果有兴趣的朋友可以去看看这个的源码,这个是开源的,而且拓
展性也是很不错的。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2019-8-4 21:20
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2019-8-4 21:17:37 | 只看该作者
    确实,FluentData框架使用起来很方便的,

    我已经在2个项目中使用此框架,

    代码质量和性能都很不错!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-25 12:18 , Processed in 0.067070 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表