FluenData的使用

首先我们需要下载FluenData;下载该项目并且引用FluentData.dll,或者直接在解决方案中添加该开源项目.项目地址:http://fluentdata.codeplex.com/

接下来我们需要创建并且初始化一个IDbContext.

它是我们与数据库操作中的上下文,所有的有关数据操作都调用它下面的方法。初始化它的连接字符串web.config

连接数据库:

public static IDbContext QueryDB()
        {
            return new DbContext().ConnectionStringName("testDBContext", DbProviderTypes.SqlServer);
        }

web.Config配置内容:

<connectionStrings>
    <add name="testDBContext" connectionString="server=192.168.1.100;uid=sa;pwd=sa!;database=testDB;" />
  </connectionStrings>

需要返回一个实体:

Product product = QueryDB().Sql(@"select * from Product
                where ProductId = 1").QuerySingle<Product>();

 2.根据参数返回一个实体

Product product = QueryDB().Sql("select * from Product where id=@id")
                  .Parameter("id", id)
                 .QuerySingle<Product>();

 3.返回一个泛型。

List<Product> product = QueryDB().Sql("select * from Product where id=@id")
                  .Parameter("id", id)
                 .Query<Product>();

4.多表支持

复制代码

using (var command = QueryDB().MultiResultSql())
{
    List<Category> categories = command.Sql(
            @"select * from Category;
            select * from Product;").Query<Category>();

    List<Product> products = command.Query<Product>();
}

复制代码

 5.插入操作

var productId = QueryDB().Insert("Product")
                .Column("Name", "The Warren Buffet Way")
                .Column("CategoryId", 1)
                .ExecuteReturnLastId();

 6.当然我喜欢写我牛逼的sql。

var productId = QueryDB().Sql(@"insert into Product(Name, CategoryId)
                    values('The Warren Buffet Way', 1);").ExecuteReturnLastId();

 7.修改操作.

QueryDB().Update("Product")
        .Column("Name", "The Warren Buffet Way")
        .Column("CategoryId", 1)
        .Where("ProductId", 1)
        .Execute();

 同上,也可以不用update()方法,而直接写sql.

8.删除操作

QueryDB().Delete("Product").Where("ProductId", 1).Execute();

 9.我想链式操作,我想写lambda表达式OK。

QueryDB().Delete<Product>("Product")                                                     
     .Where(x=>x.id,id)
     .Execute();

 10.事物的处理

复制代码

using (var context = QueryDB().UseTransaction)
{
    context.Sql("update Product set Name = @0 where ProductId = @1")
                .Parameters("The Warren Buffet Way", 1)
                .Execute();

    context.Sql("update Product set Name = @0 where ProductId = @1")
                .Parameters("Bill Gates Bio", 2)
                .Execute();

    context.Commit();
}

复制代码

 在事物的操作中记得context.Commit();方法的执行,楼主曾经在自己的一个项目中需要用到事物,却忘记了执行提交这个方法,最后在源码的汪洋中探索许久。

11.存储过程

有关存储过程的使用,该存储过程的作用是分页,那么这里也贴出来分享一下

复制代码

public static List<T> getPage<T>(string tableName,string tableFields, string sqlWhere,string order,int pageIndex, int pageSize, out int total)
        {
            var store = QueryDB().StoredProcedure("PF_Sys_PageControl")
                                      .ParameterOut("totalPage", DataTypes.Int16)
                                      .Parameter("tableName", tableName)
                                      .Parameter("tableFields", tableFields)
                                      .Parameter("sqlWhere", sqlWhere)
                                      .Parameter("orderFields", order)
                                      .Parameter("pageSize", pageSize)
                                      .Parameter("pageIndex", pageIndex);
                                    
            var result=store.Query<T>();
            total = store.ParameterValue<int>("totalPage");
            return result;
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值