当前位置: 首页 > news >正文

网站开发与维护考试题目网站关键词百度首页消失

网站开发与维护考试题目,网站关键词百度首页消失,网站建设规划表,郑州电力高等专科学校怎么样【Entity Framework】如何使用EF中的生成值 文章目录 【Entity Framework】如何使用EF中的生成值一、概述二、默认值三、计算列四、设置主键五、显示配置值生成六、设置日期/时间值生成6.1 创建时间戳6.2 更新时间戳 七、替代值生成八、无值生成九、总结 一、概述 数据库列的值…【Entity Framework】如何使用EF中的生成值 文章目录 【Entity Framework】如何使用EF中的生成值一、概述二、默认值三、计算列四、设置主键五、显示配置值生成六、设置日期/时间值生成6.1 创建时间戳6.2 更新时间戳 七、替代值生成八、无值生成九、总结 一、概述 数据库列的值可以通过多种方式生成主键列通常是自动递增的整数其他列具有默认值或计算值等。本文详细介绍使用 EF Core 配置值生成的各种模式。 二、默认值 在关系数据库中可以为列配置默认值如果插入的行没有该列的值则将使用默认值。 可以在属性上配置默认值 protected override void OnModelCreating(ModelBuilder modelBuilder) {modelBuilder.EntityBlog().Property(b b.state).HasDefaultValue(true); }可指定用于计算默认值的 SQL 片段 protected override void OnModelCreating(ModelBuilder modelBuilder) {modelBuilder.EntityBlog().Property(b b.Created).HasDefaultValueSql(getdate()); }三、计算列 大多数关系数据库中可以将列配置为在数据库中计算其值并且通常使用引用其他列的表达式 modelBuilder.EntityPerson().Property(p p.DisplayName).HasComputedColumnSql([LastName] , [FirstName]);以上命令将创建一个虚拟计算列每次从数据库中提取时都会计算其值。可以将计算列指定微存储有时称为持久化计算列这意味着系统会在每次更新行时计算该值并将其与常规列一起存储在磁盘上 modelBuilder.EntityPerson().Property(p p.NameLength).HasComputedColumnSql(LEN([LastName]) LEN([FirstName]), stored: true);四、设置主键 按照约定如果应用程序未提供值则将类型为short、int、long或Guid的非复合主键设置为针对插入的实体生成值。数据库提供程序通常负责必要的配置 详细内容请于阅读聊聊EF中的键 五、显示配置值生成 EF Core会自动为主键设置值生成-但我们可能希望对非键属性 执行相同的操作。可以将任何属性配置为针对插入的实体生成其值具体如下所示 数据注释 public class Lessess {public int LessessId{get;set;}public string LessessCode{get;set;}public string LessessName{get;set;}//显示配置值生成[DatabaseGenerated(DatabaseGeneratedOption.Identity)]public DateTime Inserted{get;set;} }Fluent API protected override void OnModelCreating(ModelBuilder modelBuilder) {modelBuilder.EntityLessess().Property(b b.Inserted).ValueGeneratedOnAdd(); }同样可以将属性配置为在添加或更新时生成其值 数据注释 public class Lessess {public int LessessId{get;set;}public string LessessCode{get;set;}public string LessessName{get;set;}//显示配置值生成[DatabaseGenerated(DatabaseGeneratedOption.Computed)]public DateTime Inserted{get;set;} }Fluent API protected override void OnModelCreating(ModelBuilder modelBuilder) {modelBuilder.EntityLessess().Property(b b.LastUpdated).ValueGeneratedOnAddOrUpdate(); }与默认值或计算列不同再没有指定值的生成方式这取决于所使用的数据库提供程序。数据库提供程序可能会自动为某些属性类型设置值生成但其他属性类型可能需要你手动设置值的生成方式。 同样配置为在添加或更新时生成值并标记为并发标记的byte[]属性将设置为rowversion数据类型以便在数据库中自动生成值。但是指定ValueGeneratedOnAdd不起作用。 六、设置日期/时间值生成 常见的请求时获取一个数据列其中包含第一次插入行的日期/时间在添加时生成的值或上次更新行的日期/时间添加或更新时生成的值。由于可通过各种策略执行此操作因此EF Core提供程序通常不会为日期/时间列自动设置值生成-必须自动设置 6.1 创建时间戳 若要将日期/时间列配置为包含行的创建时间戳通常需要使用适当的SQL函数来配置默认值。 protected override void OnModelCreating(ModelBuilder modelBuilder) {modelBuilder.EntityBlog().Property(b b.Created).HasDefaultValueSql(getdate()); }请确保选择适当的函数因为可能存在多个函数例如 GETDATE() 与 GETUTCDATE()。 6.2 更新时间戳 尽管存储计算列看起来非常适合管理上次更新时间戳但数据库通常不允许在计算列中指定诸如GETDATE()之类的函数。作为替代方法你可以设置一个数据库触发器来达到同样的效果。 七、替代值生成 尽管为属性配置了值生成但在许多情况下你仍然可以为其显式指定一个值。 此操作能否真正起作用取决于已配置的特定值生成机制虽然你可以指定显式值而不是使用列的默认值但不能对计算列执行相同的操作。 若要使用显示值替代值生成只需将属性设置为该属性类型的CLR默认值string为nullint为0Guid为Guid.Empty等等以外的任意值。 若要为已配置为在添加或更新时生成值的属性提供显示值必须按以下方式配置该属性 protected override void OnModelCreating(ModelBuilder modelBuilder) {modelBuilder.EntityBlog().Property(b b.LastUpdated).ValueGeneratedOnAddOrUpdate().Metadata.SetAfterSaveBehavior(PropertySaveBehavior.Save); }八、无值生成 除了上述特定方案外属性通常不会配置值生成这意味着始终由应用程序提供要保存到数据库的值。必须先将此值分配给新实体然后才能将新实体添加到上下文中。 但是在某些情况下你可能希望禁用按约定设置的值生成。 例如int 类型的主键通常隐式配置为 value-generated-on-add例如 SQL Server 上的 identity 列。 你可以通过以下命令禁用此功能 数据注释 public class User {[DatabaseGenerated(DatabaseGeneratedOption.None)]public int UserId { get; set; }public string LoginName { get; set; } }Fluent API protected override void OnModelCreating(ModelBuilder modelBuilder) {modelBuilder.EntityUser().Property(b b.UserId).ValueGeneratedNever(); }九、总结 Entity Framework提供多种在应用端生成值的能力。在实际开发中需要考虑在数据库层还是在应用层完成这些值的自动匹配和完成值的生成。
http://www.zqtcl.cn/news/990173/

相关文章:

  • 电影网站app怎么做的网站关键词是什么
  • 成都做网站建设公司建设网站总结报告
  • 个人网站要备案嘛免费响应式模板网站
  • 淘宝网站内站建设免费个人网站怎么建立
  • 网站运营经验分享ppt沉默是金粤语谐音歌词
  • 建设部网站人员查询wordpress中文 手机版
  • 大港油田建设网站电子商务公司取名字参考大全
  • 贵阳网站建设多点互动wordpress分页出现404
  • wap微信网站模板网站如何做链接
  • 泉州专业网站开发公司怎么免费做公司网页
  • 嵌入式软件开发前景怎么样百度官方优化指南
  • 网站访问速度优化工具网页设计模板图片大全
  • 哪里有手机网站制作公司网页设计与制作心得体会800字
  • 湖南建设厅网站首页简述网站建设的基本思路
  • 蚌埠公司做网站网站开发月薪
  • 怎么更换网站logo推荐几个没封的正能量网站
  • 开网站的宣传图片怎么做php网站建设面试
  • 哪些网站可以下载视频网站建设评价量规
  • 惠州市建设局网站网站模块设计怎么做
  • 群晖可不可以做网站用如何查询商标是否已经被注册
  • 北京欢迎你网站制作公司建设厅和应急管理厅焊工证区别
  • 如何开办网站微信公众平台号申请注册
  • 网站建设找哪个平台浦东区建设工程监督网站
  • 如何创业做网站设计公司工作室
  • 游戏网站建设多少中国煤炭建设协网站
  • 动态图表网站宁津做网站
  • 黑龙江生产建设兵团各连网站成功网站建设案例
  • 一级a做爰精免费网站肇庆网站制作软件
  • wordpress加分页北京优化生育
  • 乐至建设局网站工程项目管理软件哪个好