ABP適配Oracle全過程

2022-02-03 11:43:45 字數 1445 閱讀 3874

abp的各類文件在網路上已經非常完善了,唯獨缺少與oralce相關的資料,abp官網也未給出乙個較好的oracle解決方案。正好最近在學習abp相關知識,對abp原始碼結構稍算熟悉,花了些時間進行abp適配oracle。

前期工作都準備好後,開搞開搞!!

分別在web和entityframework新增oracle ef 引用(install-package oracle.manageddataaccess.entityframework),直接安裝該包會自動新增odp.net引用

oralce依賴新增好後,我們會發現web.config自動新增了oracle連線配置,將我們需要鏈結的資料庫加到上面去(ps:oracle的鏈結字元必須為完整)

配置好資料庫鏈結後,直接執行程式試試看,出現了如下錯誤

既然使用了ef,資料遷移必然少不了,通過執行add-migration和update-database指令,檢視oracle資料庫裡生成出來的資料表都是區分大小寫(注入abpmodules)。通常而言,我們在plsql建資料表,oracle會自動建表名和欄位名轉為大寫

顯然code-first生成出來的資料表不是我們想要的,那我們要怎麼修改呢?此時,就需要引入原始碼,進行原始碼改造。

將需要的abp原始碼引入,並修改對應依賴

找到abp.zero.common類庫,改寫實體,通過特性將所有對映到資料庫的實體名和屬性名改為大寫。

修改完後,通過資料遷移將資料表生成到資料庫中,得到如下資料表

僅僅只是重寫表名和欄位名遠遠達不到我們實際的應用需求,oracle 11g 主鍵無法自增,abp預設主鍵都是int 自增。這導致無法使用abp預設的許可權管理模組,那麼我們需要將所有表的主鍵都修改為string,然後只需要根據程式報錯提示進行修改。(ps:主鍵此時非自增型別,需要賦值)

原始碼改造完後,重新進行資料遷移。執行程式,正常顯示登入介面,但無法登入,這是因為資料遷移時,部分種子資料無法正常寫入到資料庫,暫時手工寫入基礎資料。輸入admin/123qwe後,正常顯示主介面,角色管理、租戶管理等選單未顯示,跟蹤後台發現是許可權角色無法取到值,後續待完善。

建站全過程

1 先確定做哪個 如新龍浩 2 獲得資料 包括如下 公司介紹 公司簡介 企業文化,企業榮譽 企業歷程 企業 產品介紹 產品各引數 欄目介紹 一般是 首頁 新聞中心 產品介紹 解決方案 服務支援 關於公司 功能介紹 一般為產品發布 新聞發布,主要是細緻的要求。完成時限 完成的時間 3 製作後台 no1...

感冒全過程

感冒病雖小,卻時不時的來襲,很影響工作和新籤,真的很煩人。既來之則安之,好好應對 不知不覺中又感冒了,前幾天伴隨輕微的咳嗽,一直無大礙,昨天經風一吹開始加重,流清水鼻涕。晚上聽朋友推薦兩種藥 貴州百靈維c銀翹片和北京同仁堂感冒清熱顆粒兩種藥,去藥店一問說這兩種藥不能同時吃,維c銀翹片是治風熱感冒的,...

Oracle建立使用者許可權全過程

本文將介紹的是通過建立一張表,進而實現oracle建立使用者許可權的過程。以下這些 主要也就是為實現oracle建立使用者許可權而編寫,希望能對大家有所幫助。注意 每條語語分開執行,結尾必須用分號 建立空間 createtablespace test datafile c oracle oradat...