EF Code-First(Oracle)通過Migration來更新資料庫的表的欄位

来源:http://www.cnblogs.com/wulishun111/archive/2017/11/18/7852713.html
-Advertisement-
Play Games

關於Oracle中使用Entity Framework 6.x Code-First方式開發,請參考博客(菩提樹下的楊過)https://www.cnblogs.com/yjmyzz/p/how-to-use-code-first-in-oracle-with-entity-framework-6. ...


關於Oracle中使用Entity Framework 6.x Code-First方式開發,請參考博客(菩提樹下的楊過https://www.cnblogs.com/yjmyzz/p/how-to-use-code-first-in-oracle-with-entity-framework-6.html的具體介紹,裡面關於使用Entity Framework進行Code-First開發以及創建Database Migration有詳細的講解以及官方參考的連接。這裡就不贅述了。

使用EntityframeWork的CodeFirst來寫程式的時候,會經常遇到需要修改實體內容(即表中的欄位的內容),這個時候就需要用到Database Migration,但是在實際過程中難免會碰到一些問題,這裡記錄幾個我遇到的問題,以及解決的方法。

1、關於創建和使用Migration,本文中連接參考的文章已經有了,這裡總結一下幾個使用命令。

工具(Tools)-->程式包管理器(Package Manager)-->程式包管理器控制台(Package Manager Console),1)Enable-Migrations;2)Add-Migration MigrationName;3)Update-Migration。

2、Update-Migration出錯。

Update-Migration有時候會出錯,出錯的原因有很多,原因可能是配置問題,可能是資料庫原因,以及其他原因,這個時候如果又找不到解決的方法,這個時候重新生成實體對應的表或者實體屬性對應的表的欄位,是無可奈何的一種下策。比如我在實際開發中遇到將沒有添加[Attribute]的string類型屬性添加[MaxLength]Attribute之後,生成Migration,怎麼都通不過Update-Migration。無奈只好先刪除舊的屬性,再添加上去。就可以了。

3、Add-Migration出錯。

Add-Migration出錯一般容易報錯的是“Unable to generate an explicit migration because the following explicit migrations are pending:[MigrationName].Apply the pending explicit migrations before attenpting to generate a new explicit migration”。這個錯誤是因為前面有一個新建(New Add-Migration Command)的Migration沒有被執行(Update-Migration),處於聽命(pending)的狀態,只要先運行命令將這個migration執行了就解除pending狀態了。一般都是由於update-migration執行不了才會導致後面的add-migration無法繼續。這裡可以先將之前的Migration裡面的“public override void up()”方法裡面的代碼註釋了在執行Update-Migration命令,這樣不會對資料庫有實際操作,也解除了pending狀態。然後就可以添加新的Migration了。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Server 2008 R2遠程桌面授權,解決120天過期問題 ...
  • 搭建MySQL 1、查看yum庫中的mysql 2、選擇需要的mysql進行安裝 3、驗證是否安裝成功 4、啟動mysql服務 5、進入mysql,並修改密碼 FLUSH PRIVILEGES; //刷新user表,如果沒有寫這句那麼就沒有用 6、退出並用剛修改過的密碼重新登錄 7、開放遠程登錄許可權 ...
  • 在網站運行中,錯誤是不可避免的,錯誤頁的產生也是不可缺少的。 這幾天看了博友的很多文章,自己想總結下我從中學到的和實際中配置的。 首先,需要知道產生錯誤頁的來源,一種是我們的.NET平臺拋出的,一種是網站所依賴的宿主拋出的,一般來講我們所依賴的宿主就是IIS了。 IIS中的錯誤頁入口: 其中的錯誤碼 ...
  • 返回總目錄 6.5Introduce Explaining Variable(引用解釋性變數) 概要 你有一個複雜的表達式。 將該複雜表達式(或其中一部分)的結果放進一個臨時變數,以此變數名稱來解釋表達式用途。 動機 有時候你會遇到一系列複雜的表達式連續運算的時候,這個時候你可能根本招架不住如此長或 ...
  • 上一篇簡單介紹了日誌的使用方法,也僅僅是用來做下學習,更何況只能在console輸出。 NLog已是日誌庫的一員大佬,使用也簡單方便,本文介紹的環境是居於.NET CORE 2.0 ,目前的版本也只有beta版。 一、安裝和配置 1.安裝 命令如下 2.創建配置文件 在web項目根目錄下,創建配置文 ...
  • 1、前言 surging內部使用的是高性能RPC遠程服務調用,如果用json.net序列化肯定性能上達不到最優,所以後面擴展了protobuf,messagepack序列化組件,以支持RPC二進位傳輸. 在這裡需要感謝白紙無字Zonciu,新增了messagepack序列化,讓surging 性能上 ...
  • 1、 在表單需要提交Html的頁面頭部加入 ValidateRequest="false" 2、webConfig 的 <system.web> 節點下配置 ...
  • 前言 c#做winform程式要求生成並列印Excel報告,為了不安裝Office相應組件,我選擇了NPOI來生成Excel報告,用winform的PrintDocument控制項來觸發列印操作,而難點在於如何將excel轉換成Graphics對象,在NPOI中我只找到了excel列印的設置(如橫向/ ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...