一、SqlRepoEx引用

暂时没放至nuget上,可以直接到https://github.com/AzThinker/SqlRepoEx下载源码,编译引用。

(一)、静态引用

1、需引用以下dll在\SqlRepoEx\SqlRepo.SqlServer.Static\bin\Debug\netstandard2.0目录下:

(1)、SqlRepoEx.dll;

(2)、SqlRepoEx.SqlServer.dll;

(3)、SqlRepoEx.SqlServer.Static.dll;

2、初始化SqlRepoEx工厂类

var connectionProvider = new AppConfigFirstConnectionProvider();

RepoFactory.UseConnectionProvider(connectionProvider);

RepoFactory.UseLogger(new NoOpSqlLogger())

以上为一个简单初始方式

(1)、AppConfigFirstConnectionProvider是一个简单的配置管理实现,如果需自定义自己的连接提供者,实现ISqlConnectionProvider接口即可,SqlRepoEx中SqlRepoEx.SqlServer.ConnectionProviders实现了四个标准数据库连接管理器。

(2)、使用RepoFactory的静态方法注册配置提供者,RepoFactory.UseConnectionProvider(connectionProvider);

(3)、注册一个日志器(必需注册一个);

二、使用Autofac注入方式

1、需引用以下dll

在\SqlRepoEx\SqlRepo.SqlServer.Autofac\bin\Debug\netstandard2.0目录下:

(1)、SqlRepoEx.dll;

(2)、SqlRepoEx.SqlServer.dll;

(3)、SqlRepoEx.SqlServer.Autofac.dll;

2、Autofac容器构建

var containerBuilder = new ContainerBuilder();

containerBuilder.RegisterModule<SqlRepoSqlServerAutofacModule>();

var connectionProvider = new AppConfigFirstConnectionProvider();

containerBuilder.RegisterInstance(connectionProvider)

.As<IConnectionProvider>();

// ... 其他类型注册

var container = containerBuilder.Build();

三、服务注册

1、需引用以下dll

在\SqlRepoEx\SqlRepo.SqlServer.ServiceCollection\bin\Debug\netstandard2.0目录下:

(1)、SqlRepoEx.dll;

(2)、SqlRepoEx.SqlServer.dll;

(3)、SqlRepoEx.SqlServer.ServiceCollection.dll;

2、以下是在Asp.Core中初始方式

public void ConfigureServices(IServiceCollection services)

{

...

services.AddSqlRepo();

services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

}

四、资源工厂调用

以下为一简单使用

1、定义一个简单类

public class ToDo : Entity<int>

{

public DateTime CreatedDate { get; set; }

public bool IsCompleted { get; set; }

public string Task { get; set; }

}

(1)、在SqlRepoEx不必从Entity<int>中继承,如果你使用SqlRepo则是必需的;

(2)、声明的类型不必依赖于数据库,这点与EF是有很大区别的;

2、调用

var repository = RepoFactory.Create<ToDo>();

var results = repository.Query()

.Select(e => e.Id, e => e.Task, e => e.CreatedDate)

.Where(e => e.IsCompleted == false)

.Go();

foreach (var row in results)

{

Console.WriteLine($"{row.Id},{row.Task},{row.IsCompleted},{row.CreatedDate}");

}

(1)、使用RepoFactory的静态方法,创建一个Repository;

(2)、根据需求,通过Repository进行业务操作

轻量ORM-SqlRepoEx (二)初始化SqlRepoEx的更多相关文章

  1. 轻量ORM-SqlRepoEx (十)SqlRepoEx Nuget包下载说明

    ORM-SqlRepoEx 是 .Net平台下兼容.NET Standard 2.0,一个实现以Lambda表达式转转换标准SQL语句,使用强类型操作数据的轻量级ORM工具,在减少魔法字串同时,通过灵 ...

  2. SqlSugar轻量ORM

      蓝灯软件数据股份有限公司项目,代码开源. SqlSugar是一款轻量级的MSSQL ORM ,除了具有媲美ADO的性能外还具有和EF相似简单易用的语法. 学习列表 0.功能更新 1.SqlSuga ...

  3. Dapper.NET——轻量ORM

    Dapper.NET使用 http://www.cnblogs.com/yankliu-vip/p/4182892.html 本文目录 Dapper.NET使用 1.为什么选择Dapper 2.以Da ...

  4. Dapper.NET—轻量ORM

    Dapper.NET使用 本文目录 Dapper.NET使用 1.为什么选择Dapper 2.以Dapper(4.0)为例. 2.1 在数据库中建立几张表. 2.2实体类. 3.使用方法 3.1  一 ...

  5. 轻量ORM-SqlRepoEx (十七)SqlRepoEx 2.30 版本更新说明

    .Net平台下兼容.NET Standard 2.0,一个实现以Lambda表达式转转换标准SQL语句,支持MySQL.SQL Server数据库方言,使用强类型操作数据的轻量级ORM工具,在减少魔法 ...

  6. 轻量ORM-SqlRepoEx (一)SqlRepoEx介绍

    一.SqlRepo项目 发现SqlRepo项目库是在构建自动代码工具时.对于数据访问,在.Net下,有很多选择,比如EF,但EF使用起来,不是很方便的.以前一直使用Atk.Expression库+Sy ...

  7. C# Dapper 轻量ORM调试对SQLServer

    Dapper简介 Dapper只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快. 使用ORM的好处是增.删.改很快,不用自己写sql,因为这都是重复技 ...

  8. PL/SQL轻量版(二)——基本语法

    一.流程控制 1.条件判断 语法: IF <布尔表达式> THEN PL/SQL 和 SQL语句 END IF; IF <布尔表达式> THEN PL/SQL 和 SQL语句 ...

  9. 轻量ORM-SqlRepoEx介绍

    轻量级 ORM-SqlRepoEx 介绍 SqlRepoEx是 .Net平台下兼容.NET Standard 2.0人一个轻型的ORM.解决了Lambda转Sql语句这一难题,SqlRepoEx使用的 ...

随机推荐

  1. tornado handler 方法复用的 3 个方法

    tornado handler 调用 特性 在一次 tornado 请求中调用其他 tornado handler 中的方法, 比如 run 方法 引言 在后台开发中, 有时需要做一些功能的整合, 比 ...

  2. PCU

    PCU(Peak concurrent users ),互联网术语,应用在网络游戏和其他互联网服务领域,意思是最高同时在线人数 业务系统架构性能提升主要分为两种不同的方式,scale-out(横向扩展 ...

  3. mysql主从复制报错 :Incorrect usage of DB GRANT and GLOBAL PRIVILEGES

    在配置mysql主从复制时,想通过 grant replication slave on bbs.* to 'bbs'@'192.168.1.3' identified by '123456'; 来限 ...

  4. RestTemplate请求出现401错误

    最近遇到一个请求API接口总是报401 Unauthorized错误,起初是认为这个是平台返回的,后来用Postman请求,发现平台其实返回的是一串json,里面带有一些权限验证失败的消息,但到我们代 ...

  5. python之迭代器

    原文 我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list.tuple.dict.set.str等: 一类是generator,包括生成器和带yield的gen ...

  6. JavaScirpt(JS)——BOM浏览器对象模型

    一.BOM概念 BOM(Browser Object Model)即浏览器对象模型.可以对浏览器窗口进行访问和操作.使用 BOM,开发者可以移动窗口.改变状态栏中的文本以及执行其他与页面内容不直接相关 ...

  7. 阿里云服务器Linux常用命令

    系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...

  8. UITableViewCell 分割线如何满屏

    在iOS7中,UITableViewCell左侧会有默认15像素的空白.设置setSeparatorInset:UIEdgeInsetsZero 能将空白去掉. 但是在iOS8中,设置setSepar ...

  9. Socket.Receive 无法预知字节长度的数据接收

    话不多说直接上代码: string recvStr = ""; byte[] recvBytes = new byte[1024]; int bytes; do { bytes = ...

  10. PDF2SWF简单使用

    最近在项目中遇到文档预览的需求,和PM商讨了几种解决方案,最终还是选中了转为SWF的方式.下面就稍微记录一下自己的学习成果. 工具:pdf2swf 下载地址:http://www.swftools.o ...