克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

2.2.0 版本更新 2018.10.17

1、修正MySql 增加语句有自增自段时,返回语句时的错误;

2、 IInsertStatement和IUpdateStatement接口增加两个方法

	string ParamSql();

        (string paramsql, TEntity entity) ParamSqlWithEntity();

返回形如下列SQL语句:

var repository = MsSqlRepoFactory.Create<ToDo>();
var results = repository.Query().Where(c => c.Id == 6).Go().FirstOrDefault();
Console.WriteLine(resultinsert.ParamSql());

1、	INSERT  ToDo ( CreatedDate , IsCompleted , Task )
		VALUES(@CreatedDate,@IsCompleted,@Task);


var resultinsert = repository.Update().For(results);
 Console.WriteLine(resultinsert.ParamSql());
2、	UPDATE   ToDo 
	SET CreatedDate  = @CreatedDate, IsCompleted  = @IsCompleted, Task  = @Task
	WHERE Id  = @Id;

以解决储如Dapper等ORM工具需要参数类型字符串需求

SqlRepoEx中是可以与 Dapper 同时并存,意味着初始化SqlRepoEx后,
1、可以直接从 SqlRepoEx 中操作返回结果;
2、可以通过 SqlRepoEx 来生成SQL语句,另外Dapper 主要是基于SqlMapper ,SqlMapper中定义了基于 IDbConnection 接口的操作,你可以通过SqlRepoEx 的 IConnectionProvider 接口来获取一个 DbConnection
有两种方法

     (1)、 var connectionProvider = new AppConfigFirstConnectionProvider();
     IDbConnection dbConnection = connectionProvider.GetDbConnection;

     (2)、 var repository = MsSqlRepoFactory.Create<ToDo>();
            IDbConnection dbConnection = repository.GetConnectionProvider.GetDbConnection;
     

2.1.0 版本更新 2018.10.16

增加事务支持

1、起用事务支持的语句执行器

 MsSqlRepoFactory.UseStatementTransactionExecutor();

2、代码中使用使用方法 repository.GetConnectionProvider.BeginTransaction() 获取事务控制

public void DoTransactionIt()
        {
            var repository = MsSqlRepoFactory.Create<ToDo>();
            var results = repository.Query().Where(c => c.Id < 6);
           foreach (var item in results.Go())
            {
                Console.WriteLine($"{item.Id}\t {item.Task} ");
            }
            using (var tranc = repository.GetConnectionProvider.BeginTransaction())
            {
                repository.Update().Set(c => c.Task, "A01").Where(c => c.Id == 1).Go();// A1
                repository.Update().Set(c => c.Task, "B01").Where(c => c.Id == 2).Go();// B2
                tranc.Rollback();
            }
           foreach (var item in results.Go())
            {
                Console.WriteLine($"{item.Id}\t {item.Task} ");
            }
            Console.WriteLine(results.Sql());

        }


2.0.8版本更新 2018.10.15

1、修正部分错误

2、优化代码

3、增加代码注释

注意:本次修改有两处重要变化,主要是拼写错误,现修正

1、IdentityFiledAttribute,改为IdentityFildAttribute

2、KeyFiledAttribute 改为 KeyFieldAttribute

更改保留了原有特性,但不会长期支持并存,请使用新的特定标识





2.0.7版本更新 2018.10.14

1、修正部分错误

2、优化代码

3、增加代码注释

2.0.4版本更新 2018.10.9

1、修正分页错误

2、SqlRepoEx.MsSql.ServiceCollection;与SqlRepoEx.MySql.ServiceCollection 命名空间错误修正

2.0.3版本更新 2018.10.7

1、增加数据特性

2、增加属性判断器

3、二进制数据支持

2.0.2版本更新

2018.10.5

1、增加数据特性

SqlRepoDbFieldAttribute
标识是否为数据字段,主要是因为

(1)、部分类型拥有复杂属性;

(2)、有些属性不是来源于数据库;

(3)、用户在原来的代码中使用 SqlRepoEx ,减少字段与数据库字段之间的冲突;

2、增加属性判断器

增加 SimpleWritablePropertyMatcher 属性判断器,
1、增加SqlRepoDbFieldAttribute特性后,如果用户程序仍然为POJO类型,不必标识SqlRepoDbFieldAttribute时,用SimpleWritablePropertyMatcher
2、如果明确要区分,就用WritablePropertyMatcher ;

 string ConnectionString = "Data Source=(Local);Initial Catalog=Northwind;User ID=test;Password=test";

           var connectionProvider = new ConnectionStringConnectionProvider(ConnectionString);

           MsSqlRepoFactory.UseConnectionProvider(connectionProvider);
           MsSqlRepoFactory.UseWritablePropertyMatcher(new SimpleWritablePropertyMatcher());

           var repository = MsSqlRepoFactory.Create<Customers>();

3、二进制数据支持

增加对 byte[]类型的支持,但应注意,其 byte[]格式成 Convert.ToBase64String() 后,SQL字串的总体长度不能超过8000字符。

SqlRepoEx2.0示例

image

MIT License Copyright (c) 2022 Atk-道法自然 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

SqlRepoEx2.0 Demo,.Net平台下兼容.NET Standard 2.0,一个实现以Lambda表达式转转换标准SQL语句,使用强类型操作数据的轻量级ORM工具,在减少魔法字串同时,通过灵活的Lambda表达式组合,实现业务数据查询的多样性。 展开 收起
C#
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化