我正在从现有的模型和数据库转向Entity Framework.在该数据库中,有几个表具有GUID列,这些表不是主键(或根本不是键!).每个表都有一个ID列. GUID列具有在其上定义的ROWGUIDCOL属性,以及DEFAULT(newid()).

现在,当我插入数据库时​​,我得到了这个列的所有零.

我尝试过使用数据注释:

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]

public Guid Guid {get; set;}

这个问题是它丢弃了我的ID列上的标识属性(并给我插入错误).除此之外,我注意到对于以下迁移,EF实际上为up和down方法生成了相同的SQL:

public override void Up()

{

AlterColumn("dbo.Client", "Guid", c => c.Guid(nullable: false, identity: true));

}

public override void Down()

{

AlterColumn("dbo.Client", "Guid", c => c.Guid(nullable: false));

}

用生成的sql:

ALTER TABLE [dbo].[Client] ALTER COLUMN [Guid] [uniqueidentifier] NOT NULL

为什么上面的迁移为两个语句创建了相同的sql?如何让EF生成GUID?我可以/必须在客户端(代码)空间中执行此操作吗?如果必须,我怎样才能保证表格的唯一性?

entity framework mysql guid,c# – 自动生成不是Entity Framework中主键的GUID列相关推荐

  1. MySQL使用Navicat自动生成ER图

    MySQL使用Navicat自动生成ER图 左侧选中对应数据库,并且选中上方工具栏中的"表". 选中上图所示表中需要生成E-R图的表后,鼠标右键点击"逆向表到模型-&qu ...

  2. mysql修改主键生成策略信息_常用Hibernate 主键生成策略

    1.Assigned Assigned方式由程序生成主键值,并且要在save()之前指定否则会抛出异常 特点:主键的生成值完全由用户决定,与底层数据库无关.用户需要维护主键值,在调用session.s ...

  3. hibernate中主键的生成策略

    1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据库都无关,可以跨数据库.在存储对象前,必须要使用主 ...

  4. mysql 主键注解_oracle数据库中主键注解

    hibernate5(5)实体映射注解配置[2]主键生成策略 @GeneratedValue基本注解类型 在上一篇文章中,我们讲到了JPA使用@GeneratedValue注解来定义生成策略,而关于注 ...

  5. mysql rowid踢重_MySQL中主键与rowid的使用陷阱总结

    前言 大家在MySQL中我们可能听到过rowid的概念,但是却很难去测试实践,不可避免会有一些疑惑,比如: 如何感受到rowid的存在: rowid和主键有什么关联关系: 在主键的使用中存在哪些隐患: ...

  6. mysql中主键的用法_MySQL中的主键以及设置其自增的用法教程

    1.声明主键的方法:您可以在创建表的时候就为表加上主键,如: CREATE TABLE tbl_name ([字段描述省略...], PRIMARY KEY(index_col_name)); 也可以 ...

  7. python批量导入MySQL的表头、扩展插入(datetime)类型主键

    python批量导入MySQL的表头 .扩展插入(datetime)类型主键 目标:1.在EXCEL中编辑table name.数据格式.数据类型和备注等信息,把excel中col_1列的值作为表头, ...

  8. mysql insert 主键冲突_在MySql中建立存储过程和解决insert into select 中主键冲突的有关问题...

    首先说需求,我想重复插入大量数据,那么首先想到的,就是用insert into select语句. 但是因为mysql中没有将主键设为自增长,导致每次都会报主键冲突的错误,插入失败. 对于这个问题,就 ...

  9. MySQL中主键和unique的区别

    主键:primary key 能够唯一标识表中某一行的属性或属性组. 主键也是一个特殊的索引. ⼀个表可能有多个候选键,我们可以选择⼀个候选键作为表 的 主键 . ⼀个表最多只能有⼀个主键, 主键列不 ...

最新文章

  1. django权限系统实现步骤_Django密码系统实现过程详解
  2. 模板:什么是Traits
  3. ZJOI2008 树的统计 树链剖分学习
  4. Linux开发:error: ‘clockid_t’ has not been declared
  5. vue 双向数据绑定
  6. 今天没白过之《Linux的变量》
  7. git GUI管理工具 sourcetree使用
  8. wordpress上传文件自动更名为时间形式
  9. linux 卸载 java_Linux安装卸载JDK完整步骤
  10. StringUtil和StringUtils的区别
  11. 最小二乘法求拟合曲线(中线)的斜率和截距
  12. 画二元函数即三维图像的函数及matlab代码
  13. [转载vchome] 2005年经典事件
  14. 戴维斯大学计算机排名,加利福尼亚大学戴维斯分校计算机科学专业排名第37(2020年USNEWS美国排名)...
  15. 1、Apache启动失败,请检查相关配置。2、MySQL5.1启动失败,请检查相关配置。
  16. 新浪接口“Kinsoku jikou desu” 日语禁止访问
  17. UI库——muse-ui
  18. 给90后发了面试邀请,可他却因为“薪酬面议”拒绝了
  19. 软件测试(开发)工程师的核心竞争力是什么?
  20. 七夕祝福网页制作_程序员怎么过七夕?

热门文章

  1. SQLServer 优化SQL语句:in 和not in的替代方案
  2. php软件开发--memcache缓存内存对象分布式系统
  3. 今天的你将感谢_您今天感谢系统管理员了吗?
  4. gnome没有命令行_命令行提示,喜欢GNOME的8个理由,自动Raspberry Pi备份等
  5. 开源压缩算法brotli_Brotli:一种新的压缩算法,可加快互联网速度
  6. 3d打印机 开源资料_3D打印的人类双手,开源课程资料以及更多新闻
  7. 第三方开源项目名称_如何为您的开源项目选择品牌名称
  8. LeetCode 84. 柱状图中最大的矩形(Largest Rectangle in Histogram)
  9. Bootstrap3 弹出提示插件的使用方法
  10. ROS笔记(13) 记录与回放数据