码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2018-05-03 19:46:45      阅读:530      评论:0      收藏:0      [点我收藏+]

标签:配置   base   get   报错   you   cps   eth   成功   分享   

环境: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数据库手动迁移

标签:配置   base   get   报错   you   cps   eth   成功   分享   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!