当前位置: 首页 > news >正文

大淘客网站怎样做百度推广长沙seo优化推广公司

大淘客网站怎样做百度推广,长沙seo优化推广公司,郑州一站式网站搭建,做企业网站设计前言哇。。看看时间 真的很久很久没写博客了 将近一年了。 最近一直在忙各种家中事务和公司的新框架 终于抽出时间来更新一波了。 本篇主要讲一下关于Entity Framework Core访问oracle数据库的采坑。。 强调一下,本篇文章发布之前 关于Entity Framework Core访问or…
前言

哇。。看看时间 真的很久很久没写博客了 将近一年了。

最近一直在忙各种家中事务和公司的新框架  终于抽出时间来更新一波了。

本篇主要讲一下关于Entity Framework Core访问oracle数据库的采坑。。

强调一下,本篇文章发布之前 关于Entity Framework Core访问oracle数据库的甲骨文官方dll还未正式发布。

不过我已经在项目中用起来了。。介意的兄弟可以先等等。。甲骨文说的是本年第三季度。。

 

环境

1.官方文档中支持的环境

首先我们来看看所谓的官方支持吧。

操作系统:

1. Windows x64
  1.1Windows 8.1 (Pro and Enterprise Editions)
  1.2Windows 10 x64 (Pro, Enterprise, and Education Editions)
  1.3Windows Server 2012 R2 x64 (Standard, Datacenter, Essentials, and FoundationEditions)
  1.4Windows Server 2016 x64 (Standard and Datacenter Editions)
2.Linux x64
  2.1Oracle Linux 7
  2.2Red Hat Enterprise Linux 7


.NET版本:
  1.NET Core 2.1 或者更高
  2.NET Framework 4.6.1 或者更高


· Entity Framework Core版本:
  1.   2.1版本或者更高


依赖库:
  1. ODP.NET Core 18.3或者更高
  2.Microsoft.EntityFrameworkCore.Relational 2.1或者更高
  3.Access to Oracle Database 11g Release 2 (11.2) 或者更高

 

正文

 

本篇将采取CodeFirst的形式来创建数据库。。

1.创建数据库

我们创建上下文与实体如下:

    public class BloggingContext : DbContext{public DbSet<Blog> Blogs { get; set; }public DbSet<Post> Posts { get; set; }protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){optionsBuilder.UseOracle(@"SQL Contion", b => b.UseOracleSQLCompatibility("11"));}protected override void OnModelCreating(ModelBuilder modelBuilder){}}public class Blog{public int BlogId { get; set; }public string Url { get; set; }//public int Rating { get; set; }public List<Post> Posts { get; set; }}public class Post{public int PostId { get; set; }public string Title { get; set; }public string Content { get; set; }public int BlogId { get; set; }public Blog Blog { get; set; }}

这里我们先介绍第一个要注意的地方,UseOracle参数里面跟的UseOracleSQLCompatibility方法,里面参数传递的11,指的是oracle11g版本。如果你是12g版本 请传递12.

因为11g和12g的SQL语法有较多不同的地方,所以用这个来区分。

 

然后我们add一个版本 执行nuget命令如下:(PS:不懂如何使用codeFirst的请移步:Entity Framework Core 之数据库迁移)

Add-Migration BanBen1

然后将版本更新到数据库如下:

Update-Database

数据库生成成功。

 

2.关于oracle序列的坑

我们这时候编写插入语句如下:

using (BloggingContext db = new BloggingContext()){db.Blogs.Add(new Blog { Url = "aaaaa1" });db.SaveChanges();}

看似没问题的语句,会得到一个错误消息如下:

Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

这是因为我们没有给主键赋值导致的错误信息。(因为oracle没有自增主键,只能通过序列自增)

那么自增序列如何使用呢?

我们查看数据库会发现,如图:

codefirst已经帮我们生成了序列,但是并不会自动使用。我们需要配置一下:

在上下文中的OnModelCreating方法添加如下代码:

 protected override void OnModelCreating(ModelBuilder modelBuilder){modelBuilder.Entity<Post>(entity =>{entity.ToTable("Posts");entity.Property(o => o.PostId).ForOracleUseSequenceHiLo("Posts_PostId_sq3");});modelBuilder.Entity<Blog>(entity =>{entity.ToTable("Blogs");entity.Property(o => o.BlogId).ForOracleUseSequenceHiLo("Blogs_BlogId_sq1");});}

指定对应表的序列。

然后在运行。即可添加成功了。

 

3.关于在Docker中部署的坑

在我的生产项目中。应该是打包到docker直接运行部署的。

不过在打包到docker的过程中又出现了诡异的问题。

就不重现了。。反正就是开发环境没有问题。。直接放到linux中也没问题。但是一旦打包到docker运行 就会查询不到数据。

经过多方查证 最终发现是微软提供的rumtime镜像,因为是精简版系统 所以里面的市区有问题。

在dockerfile中添加如下语句 在生成的时候 设置好时区:

FROM microsoft/dotnet:2.1-aspnetcore-runtime
ENV TZ=Asia/Shanghai

这样就能成功的操作到数据库了。。

 

 

结束语

近期移植了好些个项目到.NET CORE 或多或少遇到了不少坑。。应该算是采坑无数了。。

其实大部分都集中在数据库连接这一块。。比如oracle  DB2 。。(PS:感觉也就mysql与sql server支持是最好的。。)

DB2虽然官方发布了。但是他的坑其实比oracle还大。。我们下篇在写。。

转载于:https://www.cnblogs.com/GuZhenYin/p/10756548.html

http://www.lbrq.cn/news/2385829.html

相关文章:

  • 网站改了关键词百度关键词优化软件
  • 服装网站建设策划书地推公司
  • wordpress 留言簿seo具体怎么优化
  • 免费外国黄色网站sem是什么显微镜
  • 北京手机网站建设公司百度seo排名360
  • 做羞羞的专门网站重庆seo黄智
  • 中国建设银行嵊州市支行网站搜索引擎广告形式有
  • 优化企业网站模板企业查询网
  • 小米路由器做网站服务器吗seo搜索引擎优化实训总结
  • 银川如何做百度的网站自助建站系统代理
  • 会同县政府网站建设2023广东又开始疫情了吗
  • 设计作品靖江seo要多少钱
  • 公司电子商务网站建设规划方案永久免费用的在线客服系统
  • 台州招聘网站建设河北seo公司
  • wordpress如何实现北京seo排名公司
  • 微网站用什么做5g网络优化培训
  • 聊城住房建设局网站手机做网页的软件
  • 郑州鹏之信网站建设关键词检测工具
  • 苏州个人网站制作公司廊坊seo整站优化
  • seo优化网站网络游戏推广平台
  • 网站建设如何选择百度浏览器极速版
  • 网站备案多长时间来完成百度第三季度财报2022
  • 响应式网站设计建设制作软文形式推广产品
  • 兰州网站建设|兰州网站制作|兰州网站设计公司|兰州网络公司搜索引擎营销seo
  • 东昌府做网站高端定制网站建设
  • 广西网站推广优化以网络营销为主题的论文
  • 做茶叶网站的素材网站seo案例
  • 怎么做阿里巴巴英文网站运营网站
  • 自己做公众号和小说网站推广bt种子磁力搜索引擎
  • 开源展示型网站网络运营与推广
  • Simulink建模-Mux与Demux模块虚拟向量的组装与拆解
  • 怎么把图片做成实拍的感觉?给图片加上拍摄时间,相机信息等就可以了
  • leetcode:单词接龙[图广搜][无权图找最短路径]
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘django’问题
  • 损失函数的等高线与参数置零的关系
  • 分布式分片策略中,分片数量的评估与选择