Entity Framework入門教程:通過Entity Framework實現資料庫數據的增、刪、改

来源:http://www.cnblogs.com/yangsofter/archive/2017/06/29/EntityFramework-CUD.html
-Advertisement-
Play Games

【增加一條新的數據】 因為使用資料庫先行的模式,所以將數據保存到資料庫的操作變得非常簡單,你只需要寫簡單的幾行代碼就能將對象的實例保存到資料庫中 你也可以使用下麵的方式,將數據保存到資料庫中 當然保存數據也是支持非同步的 【批量數據插入】 Entity Framework提供了AddRange方法,可 ...


【增加一條新的數據】

因為使用資料庫先行的模式,所以將數據保存到資料庫的操作變得非常簡單,你只需要寫簡單的幾行代碼就能將對象的實例保存到資料庫中

 using (var dbContext=new BankSchemaContext())
 {
     //添加一個Teller對象實例到DbSet
     dbContext.Tellers.Add(new Teller()
     {
         Id = 28,
         Branch = "",
         Contact = "張三",
         Gender = 1,
         TellerAccount = "99999",
         SignInPassword = "123456",
         TellerPassword = "123456",
         CreateDateTime = DateTime.Now
     });
     //保存Teller對象實例到資料庫中
     dbContext.SaveChanges();
 }

你也可以使用下麵的方式,將數據保存到資料庫中

Teller teller = new Teller()
{
    Id = 28,
    Branch = "",
    Contact = "張三",
    Gender = 1,
    TellerAccount = "99999",
    SignInPassword = "123456",
    TellerPassword = "123456",
    CreateDateTime = DateTime.Now
};
//將teller添加到DbEntityEntry中,並將State狀態設置為 Added
dbContext.Entry(teller).State=EntityState.Added;
//保存Teller對象實例到資料庫中
dbContext.SaveChanges();

當然保存數據也是支持非同步的

 // dbContext.Tellers.Add(teller);
 dbContext.Entry(teller).State = EntityState.Added;
 int result = await dbContext.SaveChangesAsync();

【批量數據插入】

Entity Framework提供了AddRange方法,可以讓批量插入變得簡單

 dbContext.Tellers.AddRange(tellers);//tellers=>List<Teller>
 dbContext.SaveChanges();

【修改一條數據】

將需要修改的數據從資料庫表中查詢出來並修改實例的值,然後再將其更新到資料庫中

 //將DBEntityEntry狀態設置為Modified
 dbContext.Entry(teller).State=EntityState.Modified;
 dbContext.SaveChanges();

【數據刪除】

刪除數據只需要將將DBEntityEntry狀態設置為Deleted

 dbContext.Entry(teller).State=EntityState.Deleted;
 dbContext.SaveChanges();

【批量刪除】

Entity Framework提供了RemoveRange方法,可實現批量刪除

 dbContext.Tellers.RemoveRange(query);
 dbContext.SaveChanges();

也可以通過修改狀態的方式批量刪除

 //dbContext.Tellers.RemoveRange(query);
 foreach (var entryTeller in query)
 {
     dbContext.Entry(entryTeller).State = EntityState.Deleted;
 }
 dbContext.SaveChanges();

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

-Advertisement-
Play Games
更多相關文章
  • 密碼強度有4個狀態,分別如下圖。 無密碼狀態 密碼低級狀態 密碼中級狀態 密碼高級狀態 實現的代碼主要如下: HTML代碼 <input name="password" type="PassWord" onKeyUp="CheckIntensity(this.value)"><table borde ...
  • 根據http和ftp圖片地址獲取對應圖片的縮略圖和原圖 public class GetBitmapImageClass { public BitmapSource GetImageHttp(string url,int width) { var image = new BitmapImage(); ...
  • 首先列出HttpHelper類 /// <summary> /// Http操作類 /// </summary> public class HttpHelper { private static log4net.ILog mLog = log4net.LogManager.GetLogger("Ht ...
  • 前言 關於 ASP.NET Core 2.0 的新功能可以查看我的 "這篇博客" 。 這篇文章是 Priview2中的一些改進。 .NET Core 2.0 Preview2 Azure 的改進 Docker 鏡像轉移到了 Debian Stretch 修複並支持 macOS High Sierra ...
  • 前言 ,想利用小程式導航頁面來提升網站的流量,找到 www.xcxdh666.com 該小程式導航網站。 分析網頁 1 發現網站其實也是用非同步分頁請求載入數據的 ,所以根本用不著xpath 解析html,直接分析其請求url 2點擊載入更多找到請求,發現其實就 pageNum ,cagegory 兩 ...
  • 建議 依賴 <package id="Anotar.NLog.Fody" version="3.3.0" targetFramework="net40" developmentDependency="true" /> <package id="Fody" version="2.1.0" target ...
  • 我們習慣在一個單獨的線程中額外執行一些耗時,或者執行一些可能妨礙其他任務的任務的操作,通過多個線程的合理運用,讓客戶端得到更為快速的響應方式。通過利用單獨的線程去執行 CPU 密集型和 IO 密集型的工作,讓用戶界面一直處於活躍狀態。當然,任何事物都具有兩面性,處理不當的話會誘發線程安全的問題。 創 ...
  • ResourcePath屬性 ResourcePath屬性 一、屬性介紹 獲取或設置圖像存儲路徑,預設設置為“image”,表示的ResourcePath是在程式運行路徑下的Image文件夾(bin\Debug\Image); 該屬性可以設置為Resources參數,也可以是實際路徑。使用Resou ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...