首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ef Core 3.1根据属性生成主键

EF Core 3.1是一个开源的对象关系映射(ORM)框架,用于简化在.NET应用程序中访问数据库的过程。在EF Core 3.1中,可以使用属性来指定生成主键的方式。

EF Core 3.1支持多种方式生成主键,包括:

  1. 自增主键(自动增长):使用 [Key] 和 [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 属性标记主键属性,并将其类型设置为整数类型(如int)。
  2. Guid主键:使用 [Key] 和 [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 属性标记主键属性,并将其类型设置为Guid。
  3. 复合主键:使用 [Key] 属性标记多个属性作为复合主键。EF Core 3.1还支持使用 [Key] 和 [ForeignKey] 属性标记外键关系。
  4. 手动指定主键值:使用 [Key] 属性标记主键属性,但不使用 [DatabaseGenerated] 属性。这种方式需要手动为主键属性赋值。

根据属性生成主键的选择取决于应用程序的需求和数据库设计。自增主键适用于大多数情况,可以方便地自动生成唯一的主键值。Guid主键适用于需要在分布式系统中确保唯一性的场景。复合主键适用于具有复杂关系的表。

以下是腾讯云相关产品和产品介绍链接地址:

  • 腾讯云数据库SQL Server版:腾讯云提供的托管关系型数据库服务,可用于存储和管理应用程序的数据。了解更多信息,请访问:腾讯云数据库SQL Server版
  • 腾讯云云原生数据库TDSQL:腾讯云提供的高性能、高可用的云原生数据库服务,支持MySQL和PostgreSQL。了解更多信息,请访问:腾讯云云原生数据库TDSQL

请注意,以上仅为腾讯云提供的部分相关产品,其他云计算品牌商可能也提供类似的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 老开源项目:.NET Core 3.1 + EF Core + LayUI 管理系统

    前言 项目名称:学生信息管理系统1.0 后台框架:.Net Core 3.1 + EF Core yrjw.ORM.Chimp 前端框架:ASP.NET Core MVC + LayUI +...2、设置数据库连接字符串,Student.Core.API项目中找到配置文件进行修改,创建数据库前右键重新生成项目。 3、进入Student.Core.API项目根目录下,执行CMD命令。...通过数据库迁移命令自动生成数据库表: dotnet ef database update 看到这里数据库已生成成功了。...先说说本次框架都有哪些改变,由之前的.NET Core2.2直接升级采用最新版.NET Core3.1开发,ORM框架还是采用官方的EF Core(为什么选他就不多纠结了,只为学习目的,后期也可能会换成其他轻量级框架如...FreeSQL),使用ORM工作单元的封装也不需要自己单独弄了,我找了一个封装好的组件包进行了升级和改造,并支持了.NET Core3.1版,组件包开源地址yrjw.ORM.Chimp,使用的是Code

    35810

    EF Core3.1 CodeFirst动态自动添加表和字段的描述信息

    因为EF Core3.1 CodeFirst 对于自动添加描述这块 只有少部分的数据库支持.....然而我们的客户大佬们 对这个又有要求..所以..没办法 只能自己扩展~ 当然也可以根据这个原理来做一些有意思的扩展~ 本文就以不支持的达梦数据库来举个栗子 ....(PS:真心希望达梦数据库能开放EF Core相关的源码,这样我们也好提交点贡献,国产数据库还是不能太过敝帚自珍阿..) ?...那就需要我们自己扩展了, 所以就少不了翻看EF Core源码.. 我们通过翻看源码,可以找到MigrationsSqlGenerator这个类....执行迁移语句Script-Migration~ 我们会发现,描述已经自动生成啦~ 结束语 其实不管是.NET 5.0 还是EF Core 在开源化的今天,我们只要愿意去多翻翻源码,会发现自己可以扩展的东西还有很多

    1.6K50

    EF Core 导航属性配置

    一对一关系 先给出两个示例类,为了方便理解,我只保留了主键和导航属性: public class SingleModel { public int Id { get; set; } public...之前在说的时候,EF根据导航属性自动生成一个外键,但是这一条在一对一这里就有点不太起作用了。所以我们必须手动在导航属性的一侧实体类里配置外键,并用 HasForeignKey指定。...EF Core中取消了在映射关系中配置中间表的功能,所以在EF Core中需要一个中间表: public class ManyToManyModelA { public int Id { get...在EF 6中 中间表可以仅存在于关系中,但是在EF Core3 还没有这个的支持。也就是当前文章使用的版本。 5. 附加 在EF的外键约束中,导航属性是默认可空的。...未完待续 照例的未完待续,下一篇将为大家介绍一下EF Core 在开发中的用法。

    3.2K20

    ASP.NET Core MVC+Layui使用EF Core连接MySQL执行简单的CRUD操作

    、创建ASP.NET Core Web应用程序: 注意,本章节主要以APS.NET Core 3.1版本作为博客的样式实例!...二、添加EF Core NuGet包:   若要在项目中使用EF Core操作MySQL数据库,需要安装相应的数据库驱动包。...创建用户模型(UserInfo): 注意:属性大小写和数据库中的表字段保持一致,Id 属性成为此类对应的数据库表的主键列。 默认情况下,EF Core 将名为 Id 或 xxxID 的属性视为主键。...集合属性的名称一般使用复数形式,但不同的开发人员的命名习惯可能不一样, /// 开发人员根据自己的情况确定是否使用复数形式。...八、 ASP.NET Core MVC 和 EF Core实现MySQL CRUD功能: 注意在这里主要展示的EF Core与数据库操作的部分代码,详细代码可下载实例源码查看。

    2.8K10

    Entity Framework Core 2.0 新特性

    使用表拆分识别关系(其中外键属性形成主键)必须在共享表的所有实体类型之间进行配置: modelBuilder.Entity() .HasOne(e => e.Details)....使用所属类型与EF6中使用复杂类型类似,(PS:这里解释一下EF6中的复杂类型,复杂类型是允许在实体中组织标量属性的实体类型的非标量属性。像实体一样,复杂类型由标量属性或其他复杂类型属性组成。)...2.1DbContext连接池 在ASP.NET Core程序中我们使用EF Core一般都是将自定义DbContext类型注册到依赖注入系统中,然后通过控制器中的构造函数参数获取该类型的实例。...虽然EF Core通常可以根据查询表达式的散列表示自动编译和缓存查询,但这种机制可以通过绕过哈希计算和高速缓存查找来获得小的性能增益,从而允许应用程序使用已经通过调用委托编译了查询。...() 添加了EF.Functions属性(注意,这里应该是可以扩展的,添加更多的数据库方法),EF Core可以使用它们来定义映射到数据库函数或操作符的方法,以便可以在LINQ查询中调用它们。

    3.9K90

    .NET EF Core(Entity Framework Core

    EF Core与其他ORM比较 1、Entity Framework Core(EF Core)是微软官方的ORM框架。...4、性能: Dapper等≠性能高;EF Core≠性能差。 5、EF Core是官方推荐、推进的框架,尽量屏蔽底层数据库差异,.NET开发者必须熟悉,根据的项目情况再决定用哪个。...EF Core不支持模型优先,推荐使用代码优先,遗留系统可以使用Scaffold-DbContext来生成代码实现类似DBFirst的效果,但是推荐用Code First 。...4:名字为Id的属性主键,如果主键为short, int 或者 long类型,则默认采用自增字段,如果主键为Guid类型,则默认采用默认的Guid生成机制生成主键值。...默认把名字为Id或者“实体类型+Id“的属性作为主键,可以用HasKey()来配置其他属性作为主键

    20111
    领券