加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

.net core EF oracle db first

发布时间:2020-12-30 18:09:14 所属栏目:百科 来源:网络整理
导读:Nuget控制台: Install-Package log4netInstall-Package Newtonsoft.JsonInstall-Package AutofacInstall-Package Autofac.Extensions.DependencyInjectionInstall-Package AutoMapperInstall-Package DapperInstall-Package Microsoft.Extensions.Options

Nuget控制台:

Install-Package log4net
Install-Package Newtonsoft.Json
Install-Package Autofac
Install-Package Autofac.Extensions.DependencyInjection
Install-Package AutoMapper
Install-Package Dapper
Install-Package Microsoft.Extensions.Options
Install-Package Microsoft.Extensions.Caching.Abstractions
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design

Install-Package Oracle.EntityFrameworkCore
Install-Package Oracle.ManagedDataAccess.Core

Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.Relational
Install-Package Microsoft.EntityFrameworkCore.Design
Install-Package Microsoft.EntityFrameworkCore.Tools


Scaffold-DbContext -Force "Data Source=" Oracle.EntityFrameworkCore-OutputDir Models/DataModels -Context MyDbContext -Schemas aaa -Tables bbb 

  

 

Scaffold命令格式:

Scaffold-DbContext [-Connection] <String> [-Provider] <String>
[-OutputDir <String>] [-Context <String>] [-Schemas <String>]
[-Tables <String>] [-DataAnnotations] [ -Force] [-Project <String>]
[-StartupProject <String>] [-Environment <String>] [<CommonParameters>]

Startup.cs

 public class Startup
    {
        //log4net日志
        public static ILoggerRepository LogRepository { get; set; }
        public IConfiguration Configuration { get; }

        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;

            Init();
        }
        public void Init()
        {
            // 加载log4net日志配置文件
            LogRepository = LogManager.CreateRepository("NETCoreRepository");
            XmlConfigurator.Configure(LogRepository,new FileInfo("log4net.config"));
            LogHelper.RepositoryName = LogRepository.Name;

            // appSettings 配置类初始化
            //ConfigHelper.Init(Configuration.GetSection("appSettings"));

            // 唯一Id生成器
            //SnowflakeInit.Init(Configuration);      
            
            // 邮件初始化
            //MailInit.Init(Configuration);

            // 系统启动日志
            LogHelper.Write("TestApi Start()");
        }

        /// <summary>
        /// 此方法由运行时调用。使用此方法向容器添加服务。
        /// This method gets called by the runtime. Use this method to add services to the container.
        /// </summary>
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {           
            //注册Cookie认证服务
            //services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie();

            // 添加MemoryCache
            services.AddMemoryCache();
            // 支持HttpContext
            services.AddHttpContextAccessor();
            services.AddSingleton<IHttpContextAccessor,HttpContextAccessor>();
            // 实现小写的路由URL
            services.AddRouting(options => options.LowercaseUrls = true);
            // 添加自动映射
            //services.AddAutoMapper();

            // 对 JSON 数据使用混合大小写。驼峰式,但是javascript 首字母小写形式. 默认值
            // services.AddMvc().AddJsonOptions(options => { options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); });
            services.AddMvc().AddJsonOptions(options =>
            {
                // 忽略循环引用
                options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
                // 对 JSON 数据使用混合大小写。跟属性名同样的大小.输出
                options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
                // 格式化json日期           
                options.SerializerSettings.Converters.Add(new Newtonsoft.Json.Converters.IsoDateTimeConverter { DateTimeFormat = "yyyy‘-‘MM‘-‘dd‘ ‘HH‘:‘mm‘:‘ss‘.‘fff" });
                // long型转string           
                options.SerializerSettings.Converters.Add(new Utils.LongToStringConverter());
            });

            //配置跨域处理,允许所有来源:
            services.AddCors(options =>
            {
                options.AddPolicy("cors",set =>
                {
                    set.SetIsOriginAllowed(origin => true). //允许任何来源的主机访问
                    AllowAnyHeader().
                    AllowAnyMethod().
                    AllowCredentials(); //指定处理cookie
                });
            });

            // 添加EF Oracle支持
            services.AddDbContext<MyDbContext>(options => options.USEOracle(Configuration.GetConnectionString("OracleConnectionString")));
            // 如果使用SQL Server 2008数据库,请添加UseRowNumberForPaging的选项
            // 参考资料:https://github.com/aspnet/EntityFrameworkCore/issues/4616
            // options.UseSqlServer(Configuration.GetConnectionString("MyDbContent"),b=>b.UseRowNumberForPaging())

            // 添加Dapper
            //services.AddDapper("OracleConnection",options =>
            //{
            //    options.ConnectionString = Configuration.GetConnectionString("OracleConnectionString");
            //    options.DbType = DbStoreType.Oracle;
            /                        

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读