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

郑州网约车无锡网站优化

郑州网约车,无锡网站优化,做户外的网站,.net开发微信网站流程前言哇。。看看时间 真的很久很久没写博客了 将近一年了。最近一直在忙各种家中事务和公司的新框架 终于抽出时间来更新一波了。本篇主要讲一下关于Entity Framework Core访问oracle数据库的采坑。。强调一下#xff0c;本篇文章发布之前 关于Entity Framework Core访问oracl… 前言哇。。看看时间 真的很久很久没写博客了 将近一年了。最近一直在忙各种家中事务和公司的新框架  终于抽出时间来更新一波了。本篇主要讲一下关于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 DbSetBlog Blogs { get; set; }public DbSetPost 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 ListPost 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.EntityPost(entity { entity.ToTable(Posts); entity.Property(o o.PostId).ForOracleUseSequenceHiLo(Posts_PostId_sq3); }); modelBuilder.EntityBlog(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-runtimeENV TZAsia/Shanghai这样就能成功的操作到数据库了。。 结束语近期移植了好些个项目到.NET CORE 或多或少遇到了不少坑。。应该算是采坑无数了。。其实大部分都集中在数据库连接这一块。。比如oracle  DB2 。。PS感觉也就mysql与sql server支持是最好的。。DB2虽然官方发布了。但是他的坑其实比oracle还大。。我们下篇在写。。原文地址https://www.cnblogs.com/GuZhenYin/p/10756548.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://www.zqtcl.cn/news/933094/

相关文章:

  • .net 手机网站开发wordpress下载链接框
  • 省直部门门户网站建设网站视频点播怎么做
  • 广西网站建设-好发信息网做信息图的网站
  • 网站建设费用怎么算遵义市住房和城乡建设局官方网站
  • 网站部分网页乱码手把手教建设网站
  • 电商网站开发目的举报网站建设运行情况
  • 网站专业设计在线科技成都网站推广公司
  • 怎么建设幸运28网站seo工作是什么意思
  • 人工智能和网站开发如何做网站栏目
  • 设计有什么网站推荐ppt大全免费模板
  • 建站点wordpress百度云
  • 微信朋友圈的网站连接怎么做公众号小程序制作步骤
  • 做移动互联网站点网站建设完工确认书
  • 网站建设英语翻译资料潼南国外免费自助建站
  • 技术支持上海网站建设如何在自己电脑上做网站
  • go语做网站深圳网上推广怎么做
  • 十堰网站建设电话刷网站流量有用吗
  • 轴承推广做哪个网站怎么在app中嵌入h5页面
  • 文书写作网站模板制作过程
  • 国外做家纺的网站wordpress导航加title
  • 阿里云备案网站名称服务器租用相关网站
  • 莆田市的网站建设公司网站身份验证怎么做
  • 手机建站永久免费软件网站根目录 设置
  • 网站内容和备案不一3d建模师容易找工作吗
  • 深圳装饰公司网站怎么做正规网站
  • 福建省建设行业企业资质查询网站跨境电商网络营销是什么
  • 做科技汽车的视频网站有哪些内容wordpress长文分页
  • 哪里有建设好的网站自助建站管理平台
  • 优秀网站建设公司电话建站公司用的服务器
  • 湖南网站推广公司上海公司买车上牌规定