• 轻量ORM-SqlRepoEx (二)初始化SqlRepoEx


    一、SqlRepoEx引用

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

    (一)、静态引用

    1、需引用以下dll在SqlRepoExSqlRepo.SqlServer.StaticinDebug etstandard2.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

    在SqlRepoExSqlRepo.SqlServer.AutofacinDebug etstandard2.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

    在SqlRepoExSqlRepo.SqlServer.ServiceCollectioninDebug etstandard2.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进行业务操作

     

  • 相关阅读:
    大数据小项目之电视收视率企业项目10
    大数据小项目之电视收视率企业项目09--hive环境搭建
    spark入门: wordcount-java
    转发一个关于下载qq无损音乐的博客
    大数据小项目之电视收视率企业项目08--》MapReduce编写之Wordcount
    大数据小项目之电视收视率企业项目07
    大数据小项目之电视收视率企业项目06
    《python语言程序设计》_第6章_函数
    awk 相关
    [转]四篇应该仔细读的关于文本分析的tutorial类文章
  • 原文地址:https://www.cnblogs.com/athinker/p/9707617.html
Copyright © 2020-2023  润新知