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

楚雄 公司 网站青海城乡住房建设厅网站

楚雄 公司 网站,青海城乡住房建设厅网站,nginx 404 wordpress,人寿保险网站推荐关注「码侠江湖」加星标#xff0c;时刻不忘江湖事这是 EF Core 系列的第二篇文章#xff0c;上一篇文章讲解了 EF Core 的一些基础概念#xff0c;这一篇文章主要围绕实体属性的配置。点击上方或后方蓝字#xff0c;阅读 EF Core 系列合集。实体配置配置实体的目的时刻不忘江湖事这是 EF Core 系列的第二篇文章上一篇文章讲解了 EF Core 的一些基础概念这一篇文章主要围绕实体属性的配置。点击上方或后方蓝字阅读 EF Core 系列合集。实体配置配置实体的目的是为了让实体属性与数据库表字段实现正确的映射。EF Core 有三种方式来配置实体按约定、数据注释、Fluent API下面依次进行阐述。按约定配置按约定配置是指 EF Core 遵循一套关于属性类型和名称的简单规则并相应地配置数据库。按约定的配置可以被数据注释(特性)或 Fluent API 重写。比如下面这个示例中public class Account {public Guid AccountId { get; set; }public string Name { get; set; }public int Age { get; set; } }EF Core 通过遵循命名规则来配置 Account 实体类中的主键字段。如果实体类拥有一个名为 Id 的属性或一个类名Id的组合它就会被作为主键。如果实体类中有一个复合主键我们就不能按约定配置了。当 EF Core 使用按约定的配置时它会遍历所有的公共属性并通过它们的名称和类型来映射它们。示例中Name 属性是一个可以为 Null 的字段因为字符串类型的默认值是 Null。但 Age 属性不会为 Null因为它是一个值类型。当然如果你想让 Age 属性在数据库中可以为 Null那需要在类型后加上 「?」 后缀public int? Age { get; set; }数据注释数据注释的表现形式就是特性它不仅可以用来配置实体属性还可以永远验证实体数据是否合法。我们来替换一下 Account 实体类中的内容using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema;namespace ConsoleApp1.Entities {[Table(Account)]public class Account{[Column(AccountId)]public Guid Id { get; set; }[Required][MaxLength(50, ErrorMessage  长度必须小于50个字符)]public string Name { get; set; }public int Age { get; set; }} }Name 属性的特性它就是数据注释的一种来自 System.ComponentModel.DataAnnotations 命名空间这个命名空间中的属性主要与约束有关。Required 属性说明 Name 字段不能为空MaxLengh 属性限制了数据库中该列的长度。Account 类型与 AccountId 属性的特性也属于数据注释。不过它们来自于 System.ComponentModel.DataAnnotations.Schema 命名空间这个命名空间中的属性主要与数据库配置有关。默认情况下实体类映射到数据库中的表名与上下文类中 DbSet 属性名有关。比如 DbSetAccount它的属性名是 Accounts所以映射到数据库中的表名就是 Accounts。但是使用了 「Table」 特性就会覆盖这个默认行为。「Column」 特性则可以为 EF Core 提供该属性映射到数据库中的列信息。如果你想在代码中使用 Account 类的 Id 属性而不是 AccountId而又想让它在数据库中以 AccountId 字段名表示那么就需要使用 「Column」 特性。「Column」 特性中还有其它的一些参数比如字段的顺序与数据库中的类型等简单来说它可以定义属性在数据库中的形式。Fluent APIFluent API 是一组方法这些方法提供了大量的 EF Core 配置选项用来在上下文类中配置实体。我们可以在 ApplicationContext 类中添加这么一段代码protected override void OnModelCreating(ModelBuilder modelBuilder) {modelBuilder.EntityAccount().ToTable(Account);modelBuilder.EntityAccount().Property(s  s.Id).HasColumnName(AccountId);modelBuilder.EntityAccount().Property(s  s.Name).IsRequired().HasMaxLength(50);modelBuilder.EntityAccount().Property(s  s.Age).IsRequired(false); }Fluent API 可以在 OnModelCreating 方法中使用这段配置与前面的数据注释拥有同样的效果。Fluent API 的使用需要在一开始就选择需要配置的实体然后通过 Property 方法指定需要添加约束的属性其他的方法就很清晰明了了。OnModelCreating 方法会在 ApplicationContext 类第一次实例化时被调用。也就是在这一刻所有的三种实体配置方式都会被应用。由于配置规则非常多而常用的又并不多所以更多的配置规则大家可以通过 EF Core 官方文档去查阅。配置方式的选择现在我们主要来说一说这三种配置方式 我们应该怎么选择「首先是按约定配置」这个永远都是我们的首选。因为拥有与表名相同的类名、拥有与命名约定相匹配的主键属性名以及拥有与列相同的名称和类型的属性是我们的首选。这样不需要我们做太多的工作。「然后是数据注释」它不仅可以配置实体最重要的是可以实现数据验证如必填或最大长度验证等我们应该使用数据注释而不是 Fluent API 方法。原因在于我们可以很容易的看到哪个验证规则与哪个属性有关因为它就在属性的上方而且具有语义性。另外数据注释的验证还可以应用在 MVC 中的视图页面。比如在 Account 类中如果验证失败还可以配置错误信息。这种方法会让我们的验证代码更简单更容易维护。「最后是 Fluent API」 它用于以上两种方法以外的情况比如索引、复合键、关系都应该使用 Fluent API。对于那些我们无法做到的配置或者当我们想从实体类中隐藏配置时也必须使用这种方法。小结这篇文章主要讲了实体属性的三种配置方式下篇文章我们将围绕实体的数据库迁移与种子数据的填充。更多精彩内容请关注我▼▼如果喜欢我的文章那么在看和转发是对我最大的支持戳下面蓝字阅读ASP.NET 6 中间件系列ASP.NET 最通俗易懂的依赖注入系列查缺补漏系统学习 EF Core 6  系列老子不亏是程序员的祖师爷不得不知的超精简 HTTP 协议推荐关注微信公众号码侠江湖                        觉得不错点个在看再走哟
http://www.yutouwan.com/news/312299/

相关文章:

  • 知名网站制作公司以下哪个不是网站开发工具
  • 代刷网站推广全网最便宜app排名优化公司
  • 常州网站建设公司巧誉友网络江苏省江建集团有限公司建设网站
  • 网站维护 案例加强检察门户网站建设情况
  • 个人如何做微商城网站设计网站建设 海南
  • 爱站查询合肥网页制作
  • 重庆网站建设公司下载舜江建设集团官方网站
  • 企业门户网站建设公司东昌府企业做网站推广
  • 宁波网站设计公司只有后端可以做网站吗
  • 健康管理公司网站建设网站建设与网页设计课
  • 买空间送网站怎么创建一个博客网站
  • 客户对网站建设公司的评价网页设计模板图片
  • 网站站内推广计划书上海家装口碑最好的公司
  • 甘肃建设厅网站首页哪里有免费的ppt模板下载网站
  • 公司建站后还要录入网页吗网站推广在哪好外贸
  • 农产品网站设计巴州建设工程信息网
  • 中小企业网站建设如何网站用什么技术做的
  • 网站模板 缓存商标免费下载模板ppt
  • 东莞网站定制网页游戏修改器
  • 上海模板建站源码查国外网站备案
  • 广州专业网站改版领军企业加快wordpress图片的插件
  • 做网站开发的公司销售阿盟住房与建设局门户网站
  • 山东丽天建设集团网站济南商城网站建设
  • 景德镇网站维护公司广告片拍摄公司
  • 医保局网站建设网站开发实训意义
  • 做淘宝客网站流量选择网站建设的步骤图片过程
  • oa连接到网站的链接怎么做游戏网站模板源码
  • 广州企业网站定制微信公众号怎么上架商品
  • 建网站备案需要的材料以星空做的网站模板
  • wordpress客户端插件下载优化网站关键词