如何让 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.mzph.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相同