發表文章

目前顯示的是有「Entity Framework」標籤的文章

一個或多個實體的驗證失敗。如需詳細資料,請參閱 'EntityValidationErrors' 屬性。

圖片
  一個或多個實體的驗證失敗。如需詳細資料,請參閱 'EntityValidationErrors' 屬性。 EntityValidationErrors -> ValidationErrors -> [0] -> ErrorMessage 展開收合就可看到真正錯誤真因

Unable to track an instance of type 'XXX實體' because it does not have a primary key. Only entity types with primary keys may be tracked.

圖片
  某張table若在透過EF ORM轉化完 一定要設置PK 否則變更追蹤機制是會失效的

Entity Framework筆記(二)_Database First使用方式

圖片
  EntityFramework 主要提供的Workflows有如下幾種 1. Database First 2. Model First 3. Code First 所謂DB First也就是EF跟既有的資料庫連接後對應資料表去生成相應Model Class 而這些Model類別會再去衍生出相應Entities跟Context的類別 在Model這一層事實上是Read-Only的任何異動都必須從DB來去下手 這裡準備好一個.net framework 的 ConsoleApp專案 並且準備好你的DB和相應Table 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 USE [Master]; GO CREATE DATABASE DatabaseFirstTestDB ON ( NAME = DBFirstData, /* Point to the directory wherer you want to store your db files */ FILENAME = 'E:\IT_Db\DBFirstTest.mdf' , SIZE = 10 MB, MAXSIZE = 50 MB, FILEGROWTH = 5 MB ) LOG ON ( NAME = DBFirstLog, /* Point to the directory wherer you want to store your db files */ FILENAME = 'E:\IT_Db\DBFirstLog.ldf' , SIZE = 5 MB, ...

Entity Framework筆記(一)_EF歷史與簡介_Code First_Migration指令操作與EF API使用

圖片
撇除微軟平台ORM工具 EF 我們先來了解ORM Tools帶來的效益 在各種程式語言(Java,Php,C#...)中都有類似工具與框架 用來提供在compile階段就能有type safe的保證機制 協助開發者透過物件導向方式在對DB進行相關存取與操作 .NET ORM 框架工具 EF 是一套對於.Net的ORM框架,而EF Core則是針對.Net5(.Net Core)的延伸。 ORM(Object-Relational Mapping)可以理解為關聯式資料庫和物件之間根據某種規則而建立的一套映射關係,取代底層資料庫操作而透過物件的coding來操作,主要都是透過物件的形式在做DB存取更新刪除的相關操作。 其他ORM框架像是Dapper , NHibernate都是其中一種。  EF是由微軟推出的一種ORM框架自5.0過後就變為open source了 主張透過類似操作Object方式來控管DB .NET Framework 發展時間軸 EF的發展時間軸 早期的第一版EntityFramework 從visual studio 2008開始(.net 3.5 sp1) 只有提供 Design-First模式 直到visual studio推出2010版本相應.net 4.0一併推出 Entity Framework第四版 多出所謂的Code First 以及 POCO ( P lain O ld C lass O bject)等觀念 POCO 有點跟DTO概念類似 就是藉由傳統的Class來對應DB結構做設計,簡化EF開發過程。 EF會自動處裡相應轉換 直到.net4.0之後的發展(vs2012開始 .net 4.5的釋出) 從EF5開始的版本都能直接透過Nuget來額外安裝 別於以往相依在.net framework 的package當中 主要分成如下三種開發型態 (一)GUI拖曳方式的 Database-First:從既有的資料庫藉由GUI精靈產生EDMX檔案(xml格式的檔案), Model-First:產生Entities , relationships 跟 繼承階層 (二)OOP方式的 Code-First:優先開始撰寫Class 各自使用時機 .NET 3.5之前的開發上 開發者習慣透過ADO.NET進行資料庫程式開發 Entity Fr...