EF从数据库更新模型时保留Model上的属性设定
使用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上的属性设定相关推荐
- mvc EF 从数据库更新实体,添加视图实体时添加不上的问题
视图对象没有一列为非null的,解决办法,在视图中,将某一列排除为null的可能,比如:isnull(te,1),即可. 转载于:https://www.cnblogs.com/zinan/p/654 ...
- EF中DB First模式下数据库中表结构变化时如何快速同步到EF模型中
没想到什么好的精准的办法,持续的报错,然后定位报错很是头疼.我目前感觉较快方式有两种,如果有更好的方式,请大家指教. 一.先在数据库中修改表的结构属性,再删除edmx文件中对应的实体类模型,然后再是& ...
- mysql double保留两位小数_mysql数据库中计算时如何保留两位小数呢?
摘要: 下文讲述mysql数据库中数值计算时保留两位小数的方法分享,如下所示: 例: mysql > select convert(9521,decimal(12,2)); +--------- ...
- EF中数据优先,模型优先和代码优先
看了很多文章也不是很明白,说的都太书面化了,大家看看这图一下子就明白了,哈哈 其实看图很简单,database first和model first都是通过 data model创建的edmx文件,只不 ...
- mysql ef 一对多 更新数据库_Entity Framework_成功针对多种数据库使用实体框架(EF)...
ORM 用户已经习惯于处在 .NET 和 LINQ 角度思考问题,缺忘记了特定数据库的细节--在功能和执行 SQL 效率上的差异.本文简要讨论一些在用户利用实体框架(Entity Framework, ...
- ef mysql自动更新_EF Core中怎么实现自动更新实体的属性值到数据库
我们在开发系统的时候,经常会遇到这种需求数据库表中的行被更新时需要自动更新某些列. 数据库 比如下面的Person表有一列UpdateTime,这列数据要求在行被更新后自动更新为系统的当前时间. Pe ...
- session.merge 缓存不更新_如何保证缓存与数据库双写时的数据一致性?
在做系统优化时,想到了将数据进行分级存储的思路.因为在系统中会存在一些数据,有些数据的实时性要求不高,比如一些配置信息.基本上配置了很久才会变一次.而有一些数据实时性要求非常高,比如订单和流水的数据. ...
- Django(part20)--数据库和模型
学习笔记,仅供参考,有错必纠 文章目录 数据库和模型 Django下使用mysql数据库 安装pymysql包 创建和配置数据库 模型(Model) 模型概述 python数据库模型-Models 案 ...
- 使用EF.Core将同一模型映射到多个表
在 EntityFramework Core 中,我们可以使用属性或Fluent API来配置模型映射.有一天,我遇到了一个新的需求,有一个系统每天会生成大量数据,每天生成一个新的表存储数据.例如,数 ...
最新文章
- CentOs下卸载程序
- java web 监听器 例子_Java web技术应用---监听器
- 函数式编程语言python-Python自动化开发 - 函数式编程
- 一图胜千言!Python数据可视化多维讲解
- LeetCode 1128. 等价多米诺骨牌对的数量(哈希)
- kotlin 两个数字相加_Kotlin程序交换两个数字
- SpringBoot入门之简单配置
- Java虚拟机(四)——类加载机制
- [面试] C/C++ 语法(五) —— extern
- URLSession实现iTunes搜索听歌
- php数据库连接通常方式,php连接数据库的几种方式
- 系统设计:关于高可用系统的一些技术方案
- 深入理解Linux文件系统与日志分析
- EGo1下板_简单秒表
- SQLServer共享锁,更新锁,排它锁,死锁,默认隔离级别
- 什么请假理由让领导无法拒绝—《职场规则》
- 大蟒蛇python头像_程序员用Python获取了自己以前的QQ历史头像,以前的非主流形象简直不忍直视...
- RK3399平台开发系列讲解(ALSA子系统)4.37、ALSA驱动框架
- Winform最基础的DBHelper类
- 介绍一个很好的网站店铺推广优惠券插件 - URL Coupons