︿
Top
顯示具有 Entity Framework 標籤的文章。 顯示所有文章
顯示具有 Entity Framework 標籤的文章。 顯示所有文章

2020年1月5日 星期日

[C#] How to query with table-valued parameters in entity framework?


0. 前言


目前的專案, 遇到需要傳多個值, 查出對應資料的需求, 例如: 傳入多個組織單位代號, 去取出對應的組織單位名稱; 或者傳入多個產品類別, 去取出對應的產品資料.

經上網查詢, 至少有以下4種解決方式.

  • 方式一: 採用 LINQ 的 Contains 方法
  • 方式二: 自行撰寫 WHERE IN 的 SQL 敘述
  • 方式三: 採用 Stored Procedure, 自行傳入 Table-Valued Parameter
  • 方式四: 採用 Stored Procedure, 利用 EntityFrameworkExtras.EF6, 傳入 Table-Valued Parameter

以下茲以 傳入多個產品類別, 去取出對應的產品資料 為例, 進行說明.
本篇文章的編排比較類似個人的筆記, 說明會放在程式碼裡, 或圖片即能理解, 就不多作說明.

相關程式, 可 由此下載


2017年12月7日 星期四

[SQL Server] T-SQL 測試輔助工具或方案 (2) : Visual Studio + Specflow + Entity Framework


前言

接續前一篇, 筆者找到的第2個方案是 Visual Studio + Specflow + Entity Framework . 

Specflow 是一個用以與使用者溝通的語言工具, 用以描述使用者的需求案例. 適用於整合測試. 當然, 最好是由 Top Down 的方式, 由 BDD (Behavior-Driven Development) 逐步產生實際運作的程式碼 (Production Code); 但若還是不太習慣, 也是可以先寫實際運作的程式碼, 再寫測試方法 (Test Code).
Entity Framework  是微軟以 ADO.NET 為基礎所發展出來的物件關聯對應 (O/R Mapping) 解決方案, 在本文中, 可以用它來建立及清除測試資料.

不過, 該方案需要開發人員, 除了 T-SQL 外, 還要會寫 C# 的程式碼 .


2016年11月25日 星期五

[Entity Framework] 如何讓 Stored Procedure 與原來 Entity Framework 的運作在同一個 Transaction 裡


一. 前言


日前在撰寫 C# + Database First Entity Framework 6.x 程式時, 先呼叫 SP (該 SP 會異動資料庫), 再利用 EF 寫入其它的異動資料; 但在 SaveChanges() 時, 發生例外, 卻發現原來以 SP 異動的資料並未還原 (rollback). 覺得很怪, 於是寫了一支主控台程式, 以探究原因.
註: 為避免文章過於冗長, 本文以 SP 代表 Stored Procedure, EF 代表 Entity Framework. Tx 代表 Transacton
程式邏輯大致如下, 建議下載 github 上分享的原始程式, 實際執行看看.

using (xxEntities ctx = new xxEntities())
{
 //1.. 呼叫 SP, 並取回值
 ObjectParameter orderno = new ObjectParameter("po_order_no", typeof(String));
 ctx.usp_get_order_no(orderno);

 //2.. 新增資料, 以 EF 寫入
 //...
 ctx.SaveChanges();
}



2016年3月2日 星期三

Entity Framework Code First: Entity Association and DB Migration

前言


最近在研讀 ASP.NET MVC 5 : 網站開發美學 4.6.3 / 4.6.4 / 4.8 時, 將書中範例作了一次演練整合, 包含以下內容;

  • 定義或變更欄位的資料庫型態
  • 加入欄位
  • 1 to 1 關聯
  • 1 to many 關聯
  • many to many 關聯
  • 資料庫移轉 (Database Migration)

在閱讀本文的同時, 可以參考 ASP.NET MVC 5 : 網站開發美學 書中的章節作對照.

2014年7月27日 星期日

在 ASP.NET MVC 4 Code First + Entity Framework 5 環境下, 執行 Update-Database 發生 0x8004000C (OLE_E_PROMPTSAVECANCELLED) 錯誤

緣起

最近在研讀 Will 保哥 (黃保翕) 所著的 ASP.NET MVC 4 開發實戰 (連結為天瓏網路書店) 一書, 其第五章的內容, 主要以 Model 為主 (with Code First + Entity Framework).
筆者發現在第 185 頁的指令裡, 都會出現下的錯誤; 所以查了一下資料 ...
System.Runtime.InteropServices.COMException (0x8004000C): 使用者取消 [無法儲存] 對話方塊 (發生例外狀況於 HRESULT: 0x8004000C (OLE_E_PROMPTSAVECANCELLED))