首页 > 数据库技术 > 详细

ABP框架EF6链接Oracle数据库手动迁移

时间:2018-05-03 17:55:29      阅读:212      评论:0      收藏:0      [点我收藏+]

环境:VS2017 + ABP官方模板(不含Zero) +Oracle 11Gx64DB  + Oracle 11Gx32Client(PLSQL工具访问)

一、Abp项目的下载以及运行

1、创建abp项目。进入官网 https://aspnetboilerplate.com/下载项目模板。abp项目有两种架构,一种是单页面(angularjs),另一种是mvc的。点击创建按钮。入下图:

技术分享图片

2、对下载的源码首先进行编译,让其自动下载Nuget项目依赖包,保证源码可以编译通过。

3、在WinRun2.Core项目中增加User.cs类:

技术分享图片

     对User实体增加几个属性如下:

技术分享图片

 3、在WinRun2.EntityFramework项目中对WinRun2DbContext类进行修改:

技术分享图片

增加DbSet<User>: 

技术分享图片

增加Oracle数据库的Schema(默认是dbo,Oracle数据库必须要修改): 

技术分享图片

 

二、Oracle DB 对EF code first的支持

1、在WinRun2.EntityFramework项目增加Oracle EF 驱动的引用,在Nuget中进行安装:

技术分享图片

 2、修改WinRun2.Web项目中Web.Config配置信息(也可以在WinRun2.Web中也安装Oracle.ManagedDataAccess的依赖包,就会自动在Config中生成Oracle配置信息)

技术分享图片

 技术分享图片

 

技术分享图片

三、创建Oracle数据库Schema

 1、首先要保证本地客户端可以链接到Oracle DB服务器,用DBA权限的账号使用Oracle开发工具或SQLPLUS创建新的Schema信息:

技术分享图片

2、登录cps/oracle@winrun进行测试,查询所有Table:

技术分享图片

3、配置Web.Config中的Oracle链接字符串:

    TNS配置:

技术分享图片

    链接字符串配置:

技术分享图片

 

四、实现数据迁移

1、add-migration:

技术分享图片

2、update-database,此处报错了:

技术分享图片

3、错误处理,原因是ODP.NET GAC (Global Assembly Cache)中不存在或版本不一致。

Installing Oracle.ManagedDataAccess.dll to GAC resolved my issue. If you installed Oracle Client or Oracle Database on your machine that might be the cause.

技术分享图片

注意路径,不同的系统版本(Win10)路径会不一样:"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\gacutil.exe" /i Oracle.ManagedDataAccess.dll

4、再次update-database,还是报错了,不过换了一个错误:

技术分享图片

4、此错误说明Oracle驱动已OK,链接登录时报错,再次解决该问题:

在链接字符串中增加Persist Security Info=true 即可。

技术分享图片

5、再次迁移,成功了!

技术分享图片

6、Oracle数据库的改变

 技术分享图片

迁移支持自增长类型(Oracle使用的Trigger+Sequences实现自增长ID)

技术分享图片

 

参考链接:

http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/dotnet/CodeFirst/index.html#overview

http://www.cnblogs.com/freeliver54/p/6951700.html

http://www.cnblogs.com/yuanbeier/articles/6420621.html

http://blog.csdn.net/yangxuilyx/article/details/52561874

https://stackoverflow.com/questions/32006884/entity-framework-seed-method-exception

http://www.cnblogs.com/haight/p/5600756.html

ABP框架EF6链接Oracle数据库手动迁移

原文:https://www.cnblogs.com/renrsh/p/8986351.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!