使用EF框架从数据库产生实体类模型后,我们可以向这些数据模型添加数据注释,以指定验证要求及显示格式。如果不希望数据库发生更改,则直接将验证属性添加到模型类会起作用;但是,如果数据库发生更改,并且需要重新生成模型类,则将丢失应用于模型类的所有属性。

遇到此问题时,看到这篇文章 解决MVC中Model上的特性在EF框架刷新时清空的问题_顽石⚡的博客-CSDN博客

但是说的稍显不够详细,于是又找到官方解释

教程:使用 ASP.NET MVC 应用增强 EF Database First 的数据验证 | Microsoft Learn

再简要说明一下:

一共三个类,命名空间要一致:

1.原来从数据库选择“更新模型”产生的实体类,类名一般为table名如Student,为EF框架自动产生

public partial class Student
 {

public int StudentID { get; set; }
public string Name { get; set; }
}

2.元数据类即所谓建立联系的类,类名自己起,例如StudentMetadata,将原来在实体类指定验证要求及显示格式的工作移动至此:

public partial class StudentMetadata
 {

[Display(Name = "编号")]
  [Required(ErrorMessage = "不可为空")]

public int StudentID { get; set; }
public string Name { get; set; }
}

3.关联实体类和元数据类的部分类,自己建立

[MetadataType(typeof(StudentMetadata))]

public partial class Student { }

总结:通过将元数据属性应用于分部类,可确保数据验证属性将应用于自动生成的类。 重新生成模型类时不会丢失这些属性,因为元数据属性在未重新生成的部分类中应用。

EF从数据库更新模型时保留Model上的属性设定相关推荐

  1. mvc EF 从数据库更新实体,添加视图实体时添加不上的问题

    视图对象没有一列为非null的,解决办法,在视图中,将某一列排除为null的可能,比如:isnull(te,1),即可. 转载于:https://www.cnblogs.com/zinan/p/654 ...

  2. EF中DB First模式下数据库中表结构变化时如何快速同步到EF模型中

    没想到什么好的精准的办法,持续的报错,然后定位报错很是头疼.我目前感觉较快方式有两种,如果有更好的方式,请大家指教. 一.先在数据库中修改表的结构属性,再删除edmx文件中对应的实体类模型,然后再是& ...

  3. mysql double保留两位小数_mysql数据库中计算时如何保留两位小数呢?

    摘要: 下文讲述mysql数据库中数值计算时保留两位小数的方法分享,如下所示: 例: mysql > select convert(9521,decimal(12,2)); +--------- ...

  4. EF中数据优先,模型优先和代码优先

    看了很多文章也不是很明白,说的都太书面化了,大家看看这图一下子就明白了,哈哈 其实看图很简单,database first和model first都是通过 data model创建的edmx文件,只不 ...

  5. mysql ef 一对多 更新数据库_Entity Framework_成功针对多种数据库使用实体框架(EF)...

    ORM 用户已经习惯于处在 .NET 和 LINQ 角度思考问题,缺忘记了特定数据库的细节--在功能和执行 SQL 效率上的差异.本文简要讨论一些在用户利用实体框架(Entity Framework, ...

  6. ef mysql自动更新_EF Core中怎么实现自动更新实体的属性值到数据库

    我们在开发系统的时候,经常会遇到这种需求数据库表中的行被更新时需要自动更新某些列. 数据库 比如下面的Person表有一列UpdateTime,这列数据要求在行被更新后自动更新为系统的当前时间. Pe ...

  7. session.merge 缓存不更新_如何保证缓存与数据库双写时的数据一致性?

    在做系统优化时,想到了将数据进行分级存储的思路.因为在系统中会存在一些数据,有些数据的实时性要求不高,比如一些配置信息.基本上配置了很久才会变一次.而有一些数据实时性要求非常高,比如订单和流水的数据. ...

  8. Django(part20)--数据库和模型

    学习笔记,仅供参考,有错必纠 文章目录 数据库和模型 Django下使用mysql数据库 安装pymysql包 创建和配置数据库 模型(Model) 模型概述 python数据库模型-Models 案 ...

  9. 使用EF.Core将同一模型映射到多个表

    在 EntityFramework Core 中,我们可以使用属性或Fluent API来配置模型映射.有一天,我遇到了一个新的需求,有一个系统每天会生成大量数据,每天生成一个新的表存储数据.例如,数 ...

最新文章

  1. CentOs下卸载程序
  2. java web 监听器 例子_Java web技术应用---监听器
  3. 函数式编程语言python-Python自动化开发 - 函数式编程
  4. 一图胜千言!Python数据可视化多维讲解
  5. LeetCode 1128. 等价多米诺骨牌对的数量(哈希)
  6. kotlin 两个数字相加_Kotlin程序交换两个数字
  7. SpringBoot入门之简单配置
  8. Java虚拟机(四)——类加载机制
  9. [面试] C/C++ 语法(五) —— extern
  10. URLSession实现iTunes搜索听歌
  11. php数据库连接通常方式,php连接数据库的几种方式
  12. 系统设计:关于高可用系统的一些技术方案
  13. 深入理解Linux文件系统与日志分析
  14. EGo1下板_简单秒表
  15. SQLServer共享锁,更新锁,排它锁,死锁,默认隔离级别
  16. 什么请假理由让领导无法拒绝—《职场规则》
  17. 大蟒蛇python头像_程序员用Python获取了自己以前的QQ历史头像,以前的非主流形象简直不忍直视...
  18. RK3399平台开发系列讲解(ALSA子系统)4.37、ALSA驱动框架
  19. Winform最基础的DBHelper类
  20. 介绍一个很好的网站店铺推广优惠券插件 - URL Coupons

热门文章

  1. 网上打印论文靠谱吗?打印资料会不会被泄露?
  2. Cisco统一通信---视频部分
  3. 2023西南交通大学计算机考研信息汇总
  4. 东芝甲壳虫USB3.0移动硬盘指示灯
  5. 这些IT领域被日本垄断
  6. 卡尔曼滤波 - 状态空间模型
  7. python获取redis数据_Python之操作redis数据库
  8. 正则表达式是向前向后查找的使用
  9. 金陵科技学院c语言实验报告册,金陵科技学院C语言实验册
  10. Oracle 19C+13.5 EMCC部署和配置