ASP.NET Web Api 使用 EF 6,DateTime 字段如何取数据库服务器当前时间

image

前言

在做数据库设计时,为了方便进行数据追踪,通常会有几个字段是每个表都有的,比如创建时间、创建人、更新时间、更新人、备注等,在存储这些时间时,要么存储 WEB 服务器的时间,要么存储数据库服务器的时间,有时候,WEB 服务器的时间和数据库服务器的时间可能会不一致,所以为了精准,通常还是倾向于存储数据库服务器的时间,如果是 ASP.NET,使用原始 SQL 进行操作,我们可以在数据库中把这些时间字段设置为时间默认值如 getdate(),存储数据操作时,忽略这些时间字段,数据库就会自动把这些字段填充为数据库服务器的当前时间,但是由于 EF 是操作整个数据表对象,所以无法沿用以前的作法,需要另找其它方法。

本文分享 EF DB First 和 Code First 两种模式下 DateTime 字段各自如何存储数据库服务器当前时间的方法。

Database First 配置步骤

  1. 打开 edmx 文件

  2. 右键表 DataTime 字段,选择 属性,打开字段属性窗口

  3. 在 常规-StoreGeneratedPattern 下拉框选择 Computed

  4. 保存

  5. 这样存储数据时就能取数据库的时间默认值了,如果用的是 SQLServer,取的就是 getdate()

  6. 反映在 edmx xml 中,如:

    <Property Name="CreationTime" Type="datetime" Nullable="false" StoreGeneratedPattern="Computed" /><Property Name="CreationTime" Type="DateTime" Nullable="false" Precision="3" annotation:StoreGeneratedPattern="Computed" />
    
  7. 注:从数据库更新模型不会影响此配置

Code First

在数据表实体的时间字段添加这个特性即可 [DatabaseGenerated(DatabaseGeneratedOption.Computed)],如:

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime CreationTime { get; set; }

总结

希望本文分享的方法对您有所启发,如何您有更好的方法,欢迎留言讨论!

往期精彩

  1. 分享一个 .NET EF 6 扩展 Where 的方法
  2. 分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
  3. 分享一个 .NET 通过监听器拦截 EF 消息写日志的详细例子
  4. 不会使用 EF Core 的 Code First 模式?来看看这篇文章,手把手地教你
  5. EF Core 性能很差?试试这 6 个小技巧
  6. 如何在 EF Core 中使用乐观并发控制
  7. EF Core 在实际开发中,如何分层?

我是老杨,一个奋斗在一线的资深研发老鸟,让我们一起聊聊技术,聊聊程序人生,共同学习,共同进步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/49564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机三级嵌入式笔记(二)——嵌入式处理器

目录 考点1 嵌入式处理器的结构类型 考点2 嵌入式处理器简介 考点3 ARM处理器概述 考点4 处理器和处理器核 考点5 ARM 处理器的分类 考点6 经典 ARM 处理器 考点7 ARM Cortex 嵌入式处理器 考点8 ARM Cortex实时嵌入式处理器 考点9 ARM Cortex 应用处理器 考点10 AR…

Linux--Socket编程预备

目录 1. 理解源 IP 地址和目的 IP 地址 2.端口号 2.1端口号(port)是传输层协议的内容 2.2端口号范围划分 2.3理解 "端口号" 和 "进程 ID" 2.4理解 socket 3.传输层的典型代表 3.1认识 TCP 协议 3.2认识 UDP 协议 4. 网络字节序 5. socket 编程接…

应用产品的通信测试

当前所在公司为物联网产品&#xff0c;研发端没有真正的通信协议栈自主研发、也没有真正懂协议及协议实现的人。基本都是靠着供应商的指导和定位在做通信类开发。但日常中遇到的问题确实很细很底层的&#xff0c;特别是对研发和测试人员来说&#xff0c;遇到一个问题肯定是希望…

【数据结构】包装类、初识泛型

&#x1f387;&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了 博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳&#xff0c;欢迎大佬指点&#xff01; 人生格言: 当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友…

Selenium之execute_script()方法执行js脚本

目录 场景应用和使用 页面滚动 获取返回值 返回JavaScript定位的元素对象 修改元素属性 弹出提示框 场景应用和使用 在自动化测试中&#xff0c;部分场景无法使用自动化Selenium原生方法来进行测试&#xff1a; 滚动到某个元素&#xff08;位置&#xff09; 修改…

Unity UGUI 之 Slider

本文仅作学习笔记与交流&#xff0c;不作任何商业用途 本文包括但不限于unity官方手册&#xff0c;唐老狮&#xff0c;麦扣教程知识&#xff0c;引用会标记&#xff0c;如有不足还请斧正 1.Slider是什么 滑块&#xff0c;由三部分组成&#xff1a;背景 填充条 手柄 填充条就是…

【打工日常】使用Prometheus+Grafana+Alertmanager+Webhook-dingtalk搭建监控平台

一、监控平台介绍1.监控平台简述普罗米修斯四件套,分别为Prometheus、Grafana、Alertmanager、Webhook-DingTalk。Prometheus一套开源的监控&报警&时间序列数据库的组合,由SoundCloud公司开发,广泛用于云原生环境和容器化应用的监控和性能分析。其提供了通用的数据模…

《昇思 25 天学习打卡营第 20 天 | Pix2Pix实现图像转换 》

《昇思 25 天学习打卡营第 20 天 | Pix2Pix实现图像转换 》 活动地址&#xff1a;https://xihe.mindspore.cn/events/mindspore-training-camp 签名&#xff1a;Sam9029 Pix2Pix模型概述 Pix2Pix是一种基于条件生成对抗网络&#xff08;cGAN&#xff09;的图像转换模型&#x…

无人机侦察:一维相扫雷达技术详解

一维相扫雷达技术&#xff0c;即相位扫描雷达技术&#xff0c;在无人机侦察中扮演着重要角色。该技术通过在雷达发射天线上施加变化的相位差&#xff0c;使天线波束在固定平面内进行一维扫描&#xff0c;从而实现对目标区域的搜索和跟踪。与传统的机械扫描雷达相比&#xff0c;…

本地部署SearXNG

SearXNG SearXNG 是一个免费的互联网元搜索引擎&#xff0c;整合了各种搜索服务的结果。用户不会被跟踪&#xff0c;也不会被分析。 1. 使用 Docker 安装 SearXNG 容器 复制 docker run --rm \-d -p 8080:8080 \-v "${PWD}/searxng:/etc/searxng" \-e "BASE_…

leetcode.nvim使用cookie无法登陆问题

错误描述&#xff1a; 使用力扣 (LeetCode) 全球极客挚爱的技术成长平台 的cookie在neovim上使用leetcode.nvim进行登录会出现curl xxx -D xxxx的报错。 解决方法&#xff1a; 使用LeetCode - The Worlds Leading Online Programming Learning Platform这个网站的cookie进行登…

hisilicon的APP开发

hisilicon的APP开发 hisilicon的APP开发1、在andorid 源码目录对第三方apk进行签名:2、命令启动app应用3、查看SELinux当前状态:4、梯形接口 1、在andorid 源码目录对第三方apk进行签名: 参考:Technology\android\生成系统签名.md java -Xmx2048m -Djava.library.path=&…

Vishay推出具有高辐射强度和短开关时间的新型890 nm红外发光二极管

高速器件采用表面发射器芯片技术&#xff0c;优异的VF温度系数达 -1.0 mV/K 美国 宾夕法尼亚 MALVERN、中国 上海 — 2024年7月24日 — 日前&#xff0c;威世科技Vishay Intertechnology, Inc.&#xff08;NYSE 股市代号&#xff1a;VSH&#xff09;宣布&#xff0c;推出一款采…

dorado7 打印校验失败的字段

// Bind #updateTrade.beforeExecute !function(self, arg, dsTrade) { var currentData dsTrade.get("data:#"); if (currentData ! undefined) { var context {}; //校验时传入一个context 打印的时候能把校验出错的字段打印出来 var state currentData.v…

FTP、NFS、SAMBA系统服务

⼀、rsync托管xinetd 1 、为什么要进⾏服务托管 独⽴服务&#xff1a;独⽴启动脚本 ssh ftp nfs dns ... 依赖服务 : 没有独⽴的启动脚本 rsync telnet 依赖 xinetd 服务&#xff08;独⽴服务&#xff09; 2 、如何将 rsync 托管给 xinetd 服务去管理&#xff1f; 第⼀步&am…

普发Pfeiffer TPG300手侧配置安装操作技术资疗包含

普发Pfeiffer TPG300手侧配置安装操作技术资疗包含

Spring WebFlux 介绍与效果演示示例

Spring WebFlux 是 Spring Framework 5 引入的一个新的 Web 框架,它专为构建反应式(Reactive)Web 应用程序而设计。以下是对 Spring WebFlux 的详细介绍和示例。 Spring WebFlux 介绍 响应式编程: Spring WebFlux 使用响应式编程的理念,其中数据流和异步操作是核心概念。…

React中的无状态组件:简约之美

&#x1f389; 博客主页&#xff1a;【剑九 六千里-CSDN博客】 &#x1f3a8; 上一篇文章&#xff1a;【掌握浏览器版本检测&#xff1a;从代码到用户界面】 &#x1f3a0; 系列专栏&#xff1a;【面试题-八股系列】 &#x1f496; 感谢大家点赞&#x1f44d;收藏⭐评论✍ 引言…

JAVA.4.多态

目录 1.表现形式 2.前提条件 1.有继承关系 2.有父类引用指向子类对象 3.有方法的重写 3.注意事项 代码演示 代码结构 1.表现形式 父类类型 对象名字 new 子类对象(); 2.前提条件 1.有继承关系 2.有父类引用指向子类对象 3.有方法的重写 3.注意事项 1.调用成…

ozon要保证金吗,俄罗斯ozon平台要不要保证金

在跨境电商的广阔舞台上&#xff0c;俄罗斯Ozon平台作为本土领先的B2C电商平台&#xff0c;吸引了众多国内外卖家的目光。然而&#xff0c;对于初入该平台的新手卖家而言&#xff0c;一个常见且关键的问题便是&#xff1a;“Ozon要保证金吗&#xff1f;俄罗斯ozon平台要不要保证…