博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Entity Framework Code First 遭遇主键自动生成问题
阅读量:4486 次
发布时间:2019-06-08

本文共 631 字,大约阅读时间需要 2 分钟。

4.0后就没有去跟踪后面的版本了。现在直接开始用5.0没想到在做User的GURD时就遭遇insert不进数据问题。

ISet<User>.Add(user);_context.SaveChanges()时开始报错:

插入条目时出错,最后的英文错误大概是:

百分百user是有值的啊,为什么又说userId为null呢?

google一番后,原因大概是如果是主键,没有特殊说明,ef会默认认为这个字段数据库会自动生成,即使你给这个字段赋值

最后它也把null给到数据库,而如果数据库确实没有设成identity,则会导致插入null。解决方法就是特殊说明咯。

如果不是用code first模式,或者是允许在domain里定义实体类时用attribute来标记,你就是给userid字段设置属性如下:

[DatabaseGenerated(DatabaseGenerationOption.None)] publicintBuildID{
get;set;} 如果是code first,并且不想在domain混入数据库视点,则在做mapping的时候加多一条这样的说明:  this.Property(t => t.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); Done!

 

 

 

转载于:https://www.cnblogs.com/wusong/p/3182554.html

你可能感兴趣的文章
020 RDD的理解
查看>>
【WebApi】————.net WebApi开发(二)
查看>>
Vector
查看>>
Linux Supervisor的安装与使用入门
查看>>
为什么要应用编排,应用编排能做什么?
查看>>
实习生招聘笔试
查看>>
Linux忘记root登录密码解决方法
查看>>
String类的常用方法
查看>>
week 13 java——网络
查看>>
python curl实现
查看>>
图片轮播,
查看>>
XSS跨站攻击
查看>>
C/C++ http协议加载sessionID
查看>>
个人应用开发详记. (二)
查看>>
一款由css3和jquery实现的卡面折叠式菜单
查看>>
uva 10791
查看>>
openlayers 4快速渲染管网模型数据
查看>>
MySQL相关小技巧
查看>>
SSH整合-&nbsp;2-&nbsp;add&nbsp;service&nbsp;layout
查看>>
IP地址与UInt之间不得不说的故事
查看>>