如何讓 EF Core 6 支持 DateOnly 類型

前言

上次,我們發現《DateOnly 和 TimeOnly 類型居然不能序列化》。

但問題還不僅僅如此。

問題重現

假設有下列實體類:

public?class?User
{public?int?Id?{?get;?set;?}public?string?Name?{?get;?set;?}????????public?DateOnly?Birthday?{?get;?set;?}
}

由于Birthday只需要日期,所以我們使用了DateOnly類型。

但是,在使用 EF Core 6 存儲到數據庫時,出現如下錯誤:3f74d32bd7f31026d32993efcfb63ed1.png由于數據庫沒有 DateOnly 類型,我們使用的是?datetime 類型

結果DateOnly不能被 Map 成datetime數據庫類型。

重載 OnModelCreating

根據提示,我們重載了OnModelCreating方法,發現有個HasColumnType方法,用于配置屬性在面向關系數據庫時映射到的列的數據類型:

modelBuilder.Entity<User>().Property(t?=>?t.Birthday).HasColumnType("datetime");

但是,沒有任何效果。

HasConversion 方法

繼續查找,發現還有個HasConversion方法,用于配置屬性,以便在寫入數據庫之前轉換屬性值并在從數據庫中進行讀取時轉換回:

modelBuilder.Entity<User>().Property(t?=>?t.Birthday).HasConversion(d?=>?d.ToDateTime(TimeOnly.MinValue),d?=>?DateOnly.FromDateTime(d));

現在,EF Core 6 已經可以正確地處理 DateOnly,并使用datetime數據庫類型來存儲它。

結論

今天,我們介紹了使用轉換器來告訴 EF Core 6 如何處理 DateOnly。

添加微信號【MyIO666】,邀你加入技術交流群

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/285561.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285561.shtml
英文地址,請注明出處:http://en.pswp.cn/news/285561.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

yii2筆記: 單元測試

使用composer方式安裝yii2-app-basic (https://github.com/yiisoft/yii2-app-basic/blob/master/README.md) 裝好后既可以使用 建一個Model文件EntryForm.php在models目錄下 <?phpnamespace app\models;use Yii; use yii\base\Model;class EntryForm extends Model {public…

[轉]Python 列表(List) 的三種遍歷(序號和值)方法

if __name__ __main__:list [html, js, css, python]for i in list:print(list.index(i), i)# 方法1print( 遍歷列表方法1&#xff1a;)for i in list:print ("序號&#xff1a;%s 值&#xff1a;%s" % (list.index(i) 1, i))print (\n遍歷列表方法2&#xff1a;)…

C語言試題103之輸出特殊圖案,請在 c 環境中運行,看一看

?作者簡介:大家好我是碼莎拉蒂,CSDN博客專家?????? ??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 1、題目 題目:輸出特殊圖案,請在 c 環境中運行,看一看 2 、溫馨提示 想獲取更多C語言題目請猛搓這…

Web頁面獲取用戶控件頁面中服務器控件的值

用戶控件頁面后臺&#xff1a; public string P_Name{get { return txt_P_name.Value; }set { txt_P_name.Value value; }} Web頁面后臺&#xff1a; if (head.P_Name ! "")//head為用戶控件的標簽名{strwhere " and a.P_NAME like %" head.P_Name &qu…

【C#程序設計】教學講義——第一章:C#語言概述

文章目錄 1.1 認識Visual C#1.2 .NET Framework 3.51.3 Visual C# 2008集成開發環境1.4 使用幫助系統1.5 用C#創建Windows應用程序1.6 用C#創建控制臺應用程序1.1 認識Visual C# 1.1.1 C#語言的由來 1.C和C++ 一直是商業軟件開發領域中最具有生命力的語言; 利用C和C++語言開…

Kafka學習征途:基于Docker搭建Kafka環境

【Kafka】| 總結/Edison Zhou1準備工作這里我們使用一臺Linux CentOS系統的服務器來模擬三個Kafka Broker的偽集群&#xff08;即一臺server上開三個不同端口&#xff09;環境用于學習測試&#xff0c;大概的準備工作有兩個&#xff1a;安裝Docker# wget https://mirrors.aliyu…

C語言試題104之輸出 9乘9 口訣

?作者簡介:大家好我是碼莎拉蒂,CSDN博客專家?????? ??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 1、題目 題目:輸出 9乘9 口訣。 分析:分行與列考慮,共 9 行 9 列,i 控制行,j 控制列 2 、溫馨提…

160809308周子濟第7次作業

#include<stdio.h> #include<string.h> int main() {char name[20];int length,i,count[26]{0};printf("輸自己名拼音&#xff1a;");scanf("%s",name);lengthstrlen(name);for(i0;i<length;i)count[name[i]-a];for(i0;i<26;i)printf(&…

【Envi風暴】基于ENVI平臺提取ASTER DEM完整操作步驟(附案例數據)

本文講解在Envi平臺上,基于Aster影像數據,提取DEM的完整操作流程及注意事項,附實驗數據下載練習。 文章目錄 一、內容和目的二、提取DEM的原理三、ENVI平臺提取DEM流程四、DEM質量評估五、注意事項六、案例數據下載地址一、內容和目的 采用ASTER立體像對提取DEM,數據源: …

HashCode和hashMap、hashTable

2019獨角獸企業重金招聘Python工程師標準>>> 什么是哈希碼(HashCode) 在Java中&#xff0c;哈希碼代表對象的特征。 例如對象 String str1 “aa”, str1.hashCode 3104 String str2 “bb”, str2.hashCode 3106 String str3 “aa”, str3.hashCode 3104 根據Hash…

在OpenCloudOS使用snap安裝.NET 6

開源操作系統社區 OpenCloudOS 由騰訊與合作伙伴共同倡議發起&#xff0c;是完全中立、全面開放、安全穩定、高性能的操作系統及生態。OpenCloudOS 沉淀了多家廠商在軟件和開源生態的優勢&#xff0c;繼承了騰訊在操作系統和內核層面超過10年的技術積累&#xff0c;在云原生、穩…

C語言試題108之打印出所有的“水仙花數”,所謂“水仙花數”是指一個三位數,其各位數字立方和等于該數 本身。例如:153 是一個“水仙花數”,因為 153=1 的三次方+5 的三次方+3 的三次方。

?作者簡介:大家好我是碼莎拉蒂,CSDN博客專家?????? ??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 1、題目 題目:打印出所有的“水仙花數”,所謂“水仙花數”是指一個三位數,其各位數字立方和等于該…

code vs1517 求一次函數解析式(數論 純數學知識)

1517 求一次函數解析式 時間限制: 1 s空間限制: 128000 KB題目等級 : 白銀 Silver題解查看運行結果題目描述 Description相信大家都做過練習冊上的這種 題吧&#xff1a; 已知一個一次函數的圖像經過點&#xff08;x1,y1&#xff09;、&#xff08;x2,y2&#xff09;,求該函數的…

【ArcGIS風暴】ArcGIS Editor for OSM中文教程(1):軟件下載及安裝

OpenStreetMap ArcGIS編輯器允許你使用ArcGIS工具為OpenStreetMap數據工作。這個桌面工具允許你加載OpenStreetMap數據并將其存儲在地理數據庫中 。你可以使用ArcMap熟悉的編輯環境的創建,修改,做網絡分析,或者更新數據。一旦您完成編輯后,你可以回到編輯修改OSM使它們提供…

使用Scrapy時出現雖然隊列里有很多Request但是卻不下載,造成假死狀態

2019獨角獸企業重金招聘Python工程師標準>>> DOWNLOAD_TIMEOUT Default: 180 The amount of time (in secs) that the downloader will wait before timing out. Note This timeout can be set per spider using download_timeoutspider attribute and per-request …

[轉]maven與java命名規則

MAVEN 與 JAVA 包命名規范 拋出問題 在使用MAVEN搭建模塊化項目時&#xff0c;我的組織結構如下&#xff1a; root模塊 文件夾名&#xff1a;package-module-project pom.xml文件&#xff1a; <project><groupId>com.chuillusion</groupId><artifactId>…

為什么 Istio 要使用 SPIRE 做身份認證?

今年 6 月初&#xff0c;Istio 1.14 發布 [1] &#xff0c;該版本中最值得關注的特性是新增對 SPIRE 的支持。SPIFFE[2] 和 SPIRE 都是 CNCF 孵化項目&#xff0c;其中 SPIRE 是 SPIFFE 的實現之一。本文將帶你了解 SPIRE 對于零信任架構的意義&#xff0c;以及 Istio 是為何使…

C語言試題106之有一對兔子,從出生后第 3 個月起每個月都生一對兔子,小兔子長到第三個月 后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?

1、題目 題目:有一對兔子,從出生后第 3 個月起每個月都生一對兔子,小兔子長到第三個月 后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少? 分析:兔子的規律為數列 1,1,2,3,5,8,13,21… 2 、溫馨提示 想獲取更多C語言題目請猛搓這里==========》200個C語言…

顯式強制類型轉換

1. 日期顯式轉換為數字new Date; //1478845373322javascript有個奇特的語法&#xff0c;即構造函數沒有參數時可以不用帶()。不過最好還是使用ES5中新加入的靜態方法&#xff1a;Date.now()。2. ~運算符按位運算符只適用于32位整數&#xff0c;運算符會強制操作數使用32位格式。…

【ArcGIS風暴】ArcGIS Editor for OSM中文教程(2):下載及加載OSM數據

本文講解在ArcGIS中借助OpenStreetMap工具下載并加載OSM數據。 文章目錄 1. 下載OSM數據2. 加載OSM數據1. 下載OSM數據 在工具箱中雙擊Download OSM Data(XAPI)工具。 Download URL:http://www.overpass-api.de/api/xapi_meta? Downlaod Extent:與圖層lanzhou相同