
http://ww4.sinaimg.cn/mw690/e41b183dgw1f3n8k5ykt4j20s70d9q8o.jpg a href="http://ww1.sinaimg.cn/mw690/e41b183dgw1f3n8k6ewk6j20ms0ah0x0.jpg" rel="nofollow">http://ww1.sinaimg.cn/mw690/e41b183dgw1f3n8k6ewk6j20ms0ah0x0.jpg http://ww2.sinaimg.cn/mw690/e41b183dgw1f3n8k82nc6j20fm0593zd.jpg http://ww4.sinaimg.cn/mw690/e41b183dgw1f3n8k85vfhj20e205i405.jpg
1 CBBing OP |
2 CBBing OP |
3 CBBing OP |
4 CBBing OP |
5 haitang 2016-05-08 03:08:47 +08:00 via Android 查看异常的详细信息; id 22 是唯一的? |
6 z67nnciQnb7r8bLf 2016-05-08 08:50:33 +08:00 看看那个异常的 innerexception |
10 heaton_nobu 2016-05-08 09:39:17 +08:00 看看生成的语句是什么 |
11 CBBing OP |
12 heaton_nobu 2016-05-08 09:50:51 +08:00 你生成的语句里面没有 Id 这列,看看是不是没设主键 |
13 vghdjgh 2016-05-08 09:52:24 +08:00 如果是 EF 的 Code First ,你可以贴下模型是怎么映射的。 |
14 CBBing OP |
15 heaton_nobu 2016-05-08 10:47:38 +08:00 via iPhone @CBBing 有可能模型与数据库不一致,再同步看看呢 |
17 Choyes 2016-05-08 11:36:00 +08:00 via Android 已有了一就不能再添加相同的主值,你著把那掉然後再值就可以的,但是不建主固定的值,要么生成,要么自增 |
18 CBBing OP @heaton_nobu 模型与数据库是一致的,现在写数据到数据库已经成功了 |
19 zkd8907 2016-05-08 15:28:22 +08:00 主键不是自增的时候,是需要你在 INSERT 的时候主动赋值的,要不 SQL Server 不知道 ID 是多少。 |
21 CBBing OP @zkd8907 恩,我手动设置主键为 22,但还是一直不行,后来设置了主键自动生成就行了,按理说手动设置主键只要不冲突也可以吧? |
25 jame 2016-05-08 17:37:21 +08:00 捕捉一下异常 if (ex is DbEntityValidationException) message = ((DbEntityValidationException)ex).EntityValidationErrors.First().ValidationErrors.First().ErrorMessage; |
30 jame 2016-05-08 19:41:44 +08:00 Linq 不显示详细信息,需要使用如下代码才能显示明细。 try { db.saveChanges(); }catch(Exception ex){ if (ex is DbEntityValidationException) message = ((DbEntityValidationException)ex).EntityValidationErrors.First().ValidationErrors.First().ErrorMessage; } |
32 CBBing OP @jame 我出错时的数据表名 Comments,model 的类是 Comment,但表中还有一个属性名为 comment,我把主键设置为自增之后,还是不能插入数据库,但是我把名为 comment 的属性改为 review 之后,一切都正常了。而且刚刚我测试现在的代码也没有报错,我在想是不是属性名和 model 类名有冲突? |
33 jame 2016-05-09 13:47:48 +08:00 把 EF 中的相关表删掉,重新拉取。 |