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/[email protected]进行测试,查询所有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

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

时间: 2024-10-17 01:19:12

ABP框架EF6链接Oracle数据库手动迁移的相关文章

Oracle数据库手动恢复备忘日志

最近因为升级了Mac os x 10.10 Yosemite,突然前几天的一个晚上,开机发现就停留在开机界面了,看来BETA果然是不靠谱,然后想到自己这不前几天刚备份完吗,没事,TimeMachine是何等神器,二话不说直接恢复.但是恢复完,我后悔了,一来是忘了昨天晚上还加班呢,加班的成功保留成果所剩无几,关键我这才发现TimeMachine既然不备份虚拟机文件(虚拟机文件30G,估计直接给略过了吧),难怪每次都觉得备份那么快. 不过后悔也没用,重新搭开发环境吧.操作系统WIN7->开发工具VS

关于vs2008使用oracleclient链接oracle数据库报报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用

用vs2008链接oracle数据库出现问题,报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用,从网上找了好久方法,有两种oracle客户端文件权限,和运行vs2008以管理员身份,这些都试过了没有用,查了好久还是没有解决问题,只好换一种方式链接oracle数据了. 我使用的是ODAC方式链接oracle数据库,这样就不需要安装oracle客户端了,我的操作步骤如下: 1.从[url=http://download.oracle.com/otn/other/ole-oo

.Net项目中通过ODAC方式链接Oracle数据库相关配置

.Net项目中通过ODAC方式链接Oracle数据库相关配置 一.开发环境 1.关于ODAC的链接方式 ODAC 直接使用 Oracle 调用接口 (OCI). OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口. 2.使用ODAC方式的优点 使用ODAC的Net选项而无需在客户机上安装Oracle客户端来连接到Oracle.在这种情况下,ODAC仅需要TCP/IP协议的支持,从而可以创建真正的.最小的数据库应

Jython中链接Oracle数据库

实际操作环境为:Eclipse+Pydev中使用Jython链接Oracle数据库.方法有二,如下所示.(注意:将要使用的.jar文件路径加入系统变量classpath中) 一: Note:使用ojdbc.jar库 from oracle.jdbc.driver import OracleDriver from java.sql import DriverManager def connect(host , port , sid , user , password): driver = Orac

Java JDBC链接Oracle数据库

package com.test.test; import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql

在Abp框架中使用Mysql数据库的方法以及相关问题小记

最近发现了一款DDD的框架 看起来不错,据说挺流弊的 刚好最近要弄点小东西,拿来试试也不错 苦于穷逼买不起高配服务器,只好装mysql数据库了 下面说下如何在该框架下使用Mysql数据库 打开项目后,在"程序包管理器控制平台"中选择*.EntityFramwork以及*.Web项目(*号为你的项目名称前缀) Install-Package MySql.Data.Entity // Install-Package MySql.Data.Entity - 安装MySql.Data.Enti

oracle数据库的迁移(从一台服务器到另一个台服务器,从oracle 10g到oracle 11g)

这个过程呢,还是蛮艰难的.... 一.最初我使用的是Navicat中的数据传输来迁移的,虽说整个数据库的迁移没有成功,但传输指定的对象时还是传输成功了.所以还是记录一下吧. 1.前提连接好数据库.在指定的数据库上右击,选择"数据传输". 2.在弹出的框内选择源库和目的库以及模式和你要传输的对象,如下图所示 3.点击开始便可传输 二.在利用Navicat只可传输对象,没办法传输模式等.但是如果要迁移整个数据库,肯定不仅只有迁移对象这么简单了.于是我选择了expdp和impdp导入导出的方

JDBC链接oracle数据库

package test; import java.sql.* ; public class JDBC_Test { //orcl为oracle数据库中的数据库名,localhost表示连接本机的oracle数据库 //1521为连接的端口号 private static String url="jdbc:oracle:thin:@192.168.42.57:1521:ORCL"; //system为登陆oracle数据库的用户名 private static String user=

java 链接Oracle数据库的工具类

java连接Oracle数据库的方式 1 特点:oracle.jdbc.OracleDriver是注册oracle驱动类: jdbc:oracle:thin:@localhost:1521:xe:连接oracle的方式:网络协议+访问方式+IP+端口号+xe数据库: user:hr数据库用户名 Password:hr数据库的用户密码 缺点:statement方式连接数据库容易被黑客注入式攻击 所有不安全 现在企业中很少采用这种方式的了 连接数据库后一定的关闭连接,这个最容易忘记 调用close(