FluentData(微型ORM)

using FluentData;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test
{

    class Program
    {
        static void Main(string[] args)
        {
            //新增
            int count1 = Context().Sql("insert Worker(wName,did,gid) values( @0,@1,@2)").Parameters("张三1", 1, 2).ExecuteReturnLastId<int>();

            var insert = Context().Insert("Worker")
                      .Column("wName", "张三2")
                      .Column("did", 1)
                      .Column("gid", 2);

            int count2 = insert.ExecuteReturnLastId<int>();

            //删除
            int count3 = Context().Sql("delete Worker where wid = @wid").Parameter("wid", 7).Execute();
            int count4 = Context().Delete("Worker").Where("wid", 8).Execute();
            Worker _model2 = new Worker()
            {
                wid = 20,
                wname = "77",
                did = 10,
                gid = 11
            };

            int count8 = Context().Delete<Worker>("Worker", _model2)
             .Where(x => x.wid)
           .Execute();

            //修改
            var update = Context().Update("Worker")
                     .Column("wName", "66")
                     .Column("did", 66)
                     .Where("wid", 13);
            int count5 = update.Execute();

            Worker _model = new Worker()
            {
                wid = 17,
                wname = "77",
                did = 10,
                gid = 11
            };
            int count7 = Context().Update<Worker>("Worker", _model)
              .AutoMap(x => x.wid)
              .Where(x => x.wid)
              .Execute();

            //查询
            //单个对象
            Worker worker = Context().Select<Worker>("*")
                         .From("Worker")
                         .Where("wId = @wId").Parameter("wId", 14)
                         .QuerySingle();

            int count6 = Context().Select<int>("count(1)")
                     .From("Worker")
                     .Where("wId = @wId").Parameter("wId", 14)
                     .QuerySingle();

            //分页
            List<Worker> list = Context().Select<Worker>("*")
                         .From("Worker")
                         .Paging(2, 5)
                         .OrderBy(" wid asc ")
                         .QueryMany();

            //反生异常,事务自动回滚
            using (var context = Context().UseTransaction(true))
            {

                context.Sql("insert Worker(wName,did,gid) values( @0,@1,@2)").Parameters("张三1123", 1, 2).ExecuteReturnLastId<int>();
                context.Sql("update Product set Name = @0 where Id = @1")
                                .Parameters("Product不存在数据库中", 1)
                                .Execute();
                context.Commit();
            }

            //存储过程
            var store = Context().StoredProcedure("ssss")
                                      .ParameterOut("UserID", DataTypes.Int32)
                                      .Parameter("UserName", "123");

            var result = store.QueryMany<Worker>();
            int count9 = store.ParameterValue<int>("UserID");
        }

        public static IDbContext Context()
        {
            var context = new DbContext().ConnectionString("server=.;uid=sa;pwd=123;database=Test;", new SqlServerProvider());
            return context;
        }
    }

    public class Worker
    {
        public int wid { get; set; }
        public string wname { get; set; }
        public int did { get; set; }
        public int gid { get; set; }
    }

}
时间: 2024-10-12 12:53:23

FluentData(微型ORM)的相关文章

【译】微型ORM:PetaPoco【不完整的翻译】

PetaPoco是一款适用于.Net 和Mono的微小.快速.单文件的微型ORM. PetaPoco有以下特色: 微小,没有依赖项……单个的C#文件可以方便的添加到任何项目中. 工作于严格的没有装饰的Poco类,和几乎全部加了特性的Poco类 Insert/Delete/Update/Save and IsNew 等帮助方法. 分页支持:自动得到总行数和数据 支持简单的事务 更好的支持参数替换,包括从对象属性中抓取命名的参数. 很好的性能,剔除了Linq,并通过Dynamic方法快速的为属性赋值

视频教程--ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

说好的给园子里的朋友们录制与<ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库> 这篇博客相对应的视频,由于一个月一来没有时间录制,今天我兑现了给朋友们的承诺.. 本次视频教程的目录为 视频.代码.资料,其中视频有4段,资料是我收集的相关资料.. 视频下载地址:http://pan.baidu.com/s/1c05sysC 希望大家多多支持... 郝喜路 2014年6月8日 11:11:02   http://haoxilu.cn

FluentData -Micro ORM with a fluent API that makes it simple to query a database 【MYSQL】

官方地址:http://fluentdata.codeplex.com/documentation MYSQL: MySQL through the MySQL Connector .NET driver. 连接字符串:Server=127.0.0.1;Database=testDB;Uid=root;Pwd=jnex;<system.data> <DbProviderFactories> <add name="MySQL Data Provider" i

Weed3 for java 新的微型ORM框架

Weed3,微型ORM框架(支持:java sql,xml sql,annotation sql:存储过程:事务:缓存:监听:等...) 05年时开发了第一代: 08年时开发了第二代,那时候进入互联网公司,对性能有了全新的认识: 14年时开发了第三代.因为不喜欢滥用反射,不喜欢有很多配置,所以一直在执着的没放弃. 前两代,都是在.net开发的:第三代,重点放在了java上.应该算是个功能全面且最小的ORM框架,无其它依赖,仅0.1mb.对外的接口也不多,主要由DbContext上的四个接口发起所

微型 ORM 的第一篇 DapperLambda发布

引言:因为接触过多个ORM,但使用的时候都遇到了各自的一些不够理想的地方,从最早开始开始公司自己分装的,到后面用EF,以及Dapper和DapperExtensions  到现在用的FluentData,就说说我自己的使用体验,在这几个相比之下,Dapper应该是最轻量级,而且性能也是最好的,但是相对比较简单了点.EF的最新版也没去使用,所以现在不是很了解,EF在这几个相比一下,功能是最强大的,但是启动加载慢,以及复杂的功能,后续人优化麻烦.FluentData 怎么说呢,用的都挺好用,而且语法

.Net开源微型ORM框架测评

什么是ORM? 对象关系映射(英语:Object Relation Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”. 一般的ORM包括以下四部分: 一个对持久类对象进行CRUD操作的API: 一个语言或API用来规定与类和类属性相关的查询: 一个规定MAPPING METADATA的工具: 一种技术可以让ORM的实现同事务对象一起进行D

FluentData -Micro ORM with a fluent API that makes it simple to query a database

Code samples Create and initialize a DbContextThe connection string on the DbContext class can be initialized either by giving the connection string name in the *.config file or by sending in the entire connection string. Important configurations Ign

ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

今天有幸被召回母校给即将毕业的学弟学妹们讲我这两年的工作史,看了下母校没啥特别的变化,就是寝室都安了空调,学妹们都非常漂亮而已..好了不扯蛋了,说下今天的主题吧.这些天我在深度定制语法高亮功能的同时发现了博客园提供的一些有意思的函数,甚至有几个博客园都没用到,我也不知道怎么才能触发那些功能..打开这个js就可以看到很多好用的东西了,虽然写的不怎么样,但是至少有这些功能. ps: 推荐安装一个代码格式化的插件,否则一坨看着蛋疼.比如第一个就是 log,方便调试. http://www.qdmm.c

微型orm框架--dapper的简单使用

1.安装 首先使用nuget安装dapper,因为这里的示例是使用mysql,所以还要安装mysql的驱动.如下图: 2 数据库表 脚本 SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for class -- ---------------------------- DROP TABLE IF EXISTS `class`; CREATE TABLE `class` ( `id` int(