EF插入数据,GUID为主键

oLanJieKou 2014-04-29 11:04:46
RT
意思是说一张表中包含GUID主键,并且设置了数据库默认值newid() 使用EF添加数据的时候,GUID生成有问题 值为00000000-0000-0000-0000-000000000000 有什么办法让我不需要手动传入GUID 然后EF能自动生成正确的办法么
...全文
517 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
luzjoyme 2014-08-21
  • 打赏
  • 举报
回复
System.Guid.newGuid().tostring
xdashewan 2014-04-30
  • 打赏
  • 举报
回复
因为你程序里的guid并不是个null值,而是和int类型相似有个00000000-0000-0000-0000-000000000000的默认值,ef再判断时候认为00000000-0000-0000-0000-000000000000是一个有效的guid而不是空,所以顺理成章的把这个值插入数据库
oLanJieKou 2014-04-30
  • 打赏
  • 举报
回复
但是我一直有个疑问 不是说EF也是拼接SQL传入数据库么 为什么数据库的默认值对EF无效呢 那是不是说EF并不是像我们平常那样传入SQL的写法 还是做了另外的一些操作
oLanJieKou 2014-04-30
  • 打赏
  • 举报
回复
OK 说接分都来了 - - 履行诺言 2L 40 ~~
xdashewan 2014-04-30
  • 打赏
  • 举报
回复
引用 1 楼 oLanJieKou 的回复:
唉 这个问题我还是在程序生成了插入数据库吧 有人需要接分么 1L 40分!
insert的时候别把主键带进去
moonwrite 2014-04-30
  • 打赏
  • 举报
回复
那我就来接分~ 告诉你为什么会有00000000 那是因为所有值类型都有默认值~ 而Guid的默认值是:00000000 因为Guid有了默认值 所以数据库的NewId就没有效果了~
xdashewan 2014-04-30
  • 打赏
  • 举报
回复
因为之前我没注意的时候也这样来了一回
xdashewan 2014-04-30
  • 打赏
  • 举报
回复
来啦,接分,刚想告诉你程序生成可能比较大
oLanJieKou 2014-04-30
  • 打赏
  • 举报
回复
唉 这个问题我还是在程序生成了插入数据库吧 有人需要接分么 1L 40分!

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧