ABP框架EF6链接Oracle数据库手动迁移
环境: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数据库手动迁移的更多相关文章
- 历尽磨难之PL/SQL链接Oracle数据库
说起来都是泪啊,上司布置的任务需要远程连接Oracle数据库,说实话这又是我人生中的第一次.我听到以后觉得不是什么大问题,然而我错了..错的很厉害! 我搞了一天一夜才弄好,这里面原因有很多,大体来讲还 ...
- 关于vs2008使用oracleclient链接oracle数据库报报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用
用vs2008链接oracle数据库出现问题,报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用,从网上找了好久方法,有两种oracle客户端文件权限,和运行vs2008以管理 ...
- 有关.NET链接Oracle数据库,使用连接池pooling=true时问题
.net链接oracle数据库时,当链接字符串中pooling=true时,视图结构变更时程序报错问题,还请高手指教 现象: 链接字符串: 注意:这里pooling=true: 测试视图: 执行的SQ ...
- Oracle 远程链接oracle数据库服务器的配置
远程链接oracle数据库服务器的配置 by:授客 QQ:1033553122 原理: 一.Oracle客户端与服务器端的通讯机制 1.OracleNet协议 如下图所示,Oracle通过Oracle ...
- 链接oracle数据库 生成表对应的javabean
package com.databi.utils; import java.io.File; import java.io.FileOutputStream; import java.io.IOExc ...
- Java JDBC链接Oracle数据库
package com.test.test; import java.io.FileInputStream;import java.io.FileNotFoundException;import ja ...
- python链接oracle数据库以及数据库的增删改查实例
初次使用python链接oracle,所以想记录下我遇到的问题,便于向我这样初次尝试的朋友能够快速的配置好环境进入开发环节. 1.首先,python链接oracle数据库需要配置好环境. 我的相关环境 ...
- [转帖]亚马逊彻底去掉 Oracle 数据库:迁移完成
亚马逊彻底去掉 Oracle 数据库:迁移完成 https://mp.weixin.qq.com/s/KFonq8efDZ5K6x4YzIVbbg 云头条的信息挺不错的.. 2019 年 10 月 1 ...
- C# 的EF框架怎么连接Oracle数据库
安装odp.net ODP.NET你不需要安装Oracle,不需要配置oracle.key文件,不需要配置TnsNames.Ora文件 不需要配置环境变量:完全的傻瓜式的在没有安装oracle数据库或 ...
随机推荐
- nginx 根据url访问次数限制
#获取日期 date=`date +"%y%m%d"` #设置日志路径 data="/data/logs/abc.com/access.log" #配置文件路径 ...
- sed 使用总结
1. 更新区间值 文件的内容如下: <ClientVersion> <Item> <ProductUuid>5fa7d5af-6f6a-4d1f-b773-ac42 ...
- 第一章:1-20、试计算以下两种情况的发送时延和传播时延: (1) 数据长度为107bit,数据发送速率为100kbit/s,传播距离为1000km,信号在媒体上 的传播速率为2×108m/s。 (2) 数据长度为103bit,数据发送速率为1Gbit/s,传输距离和信号在媒体上的传播速率同 上。
<计算机网络>谢希仁著第四版课后习题答案答: 1):发送延迟=107/(100×1000)=100s 传播延迟=1000×1000/(2×108)=5×10-3s=5ms ...
- J.U.C并发框架源码阅读(二)AbstractQueuedSynchronizer
基于版本jdk1.7.0_80 java.util.concurrent.locks.AbstractQueuedSynchronizer 代码如下 /* * ORACLE PROPRIETARY/C ...
- string那些事之replace
/* 用法一: 用str替换指定字符串从起始位置pos开始 长度为为len的字符串 string &replace(size_t pos, size_t len, const string&a ...
- Hihocoder 1634 Puzzle Game(2017 ACM-ICPC 北京区域赛 H题,枚举 + 最大子矩阵变形)
题目链接 2017 Beijing Problem H 题意 给定一个$n * m$的矩阵,现在可以把矩阵中的任意一个数换成$p$,求替换之后最大子矩阵的最小值. 首先想一想暴力的方法,枚举矩阵中 ...
- HDU 6240 Server(2017 CCPC哈尔滨站 K题,01分数规划 + 树状数组优化DP)
题目链接 2017 CCPC Harbin Problem K 题意 给定若干物品,每个物品可以覆盖一个区间.现在要覆盖区间$[1, t]$. 求选出来的物品的$\frac{∑a_{i}}{∑b_ ...
- UVA——442 Matrix Chain Multiplication
442 Matrix Chain MultiplicationSuppose you have to evaluate an expression like A*B*C*D*E where A,B,C ...
- Xamarin.Android真机测试提示[INSTALL_FAILED_UPDATE_INCOMPATIBLE]
Xamarin.Android真机测试提示[INSTALL_FAILED_UPDATE_INCOMPATIBLE] 使用真机测试的时候,出现以下错误提示: Deployment failed ...
- socket 和 webservice 的区别和比较
时间紧迫,我就直奔主题. 目前需要说服客户使用webservice 而不是socket. 我觉得要先分别解释下什么是socket 什么是webservice..这个要我该怎么说才比较形象,让人一定就明 ...