|
1
|
|
2
|
|
3
|
|
4
|
|
5
查看异常的详细信息; id 22 是唯一的?
|
|
6
看看那个异常的 innerexception
|
|
10
看看生成的语句是什么
|
|
11
|
|
12
你生成的语句里面没有 Id 这列,看看是不是没设主键
|
|
13
如果是 EF 的 Code First ,你可以贴下模型是怎么映射的。
|
|
14
|
|
15
@CBBing 有可能模型与数据库不一致,再同步看看呢
|
|
17
數據庫已經有了一條就不能再添加相同的主鍵值,你試著把那條刪掉然後再賦值應該就可以的,但是不建議給主鍵賦固定的值,要么隨機生成,要么自動增長
|
|
18
@heaton_nobu 模型与数据库是一致的,现在写数据到数据库已经成功了
|
|
19
主键不是自增的时候,是需要你在 INSERT 的时候主动赋值的,要不 SQL Server 不知道 ID 是多少。
|
|
25
捕捉一下异常
if (ex is DbEntityValidationException) message = ((DbEntityValidationException)ex).EntityValidationErrors.First().ValidationErrors.First().ErrorMessage; |
|
30
Linq 不显示详细信息,需要使用如下代码才能显示明细。
try { db.saveChanges(); }catch(Exception ex){ if (ex is DbEntityValidationException) message = ((DbEntityValidationException)ex).EntityValidationErrors.First().ValidationErrors.First().ErrorMessage; } |
|
32
@jame 我出错时的数据表名 Comments,model 的类是 Comment,但表中还有一个属性名为 comment,我把主键设置为自增之后,还是不能插入数据库,但是我把名为 comment 的属性改为 review 之后,一切都正常了。而且刚刚我测试现在的代码也没有报错,我在想是不是属性名和 model 类名有冲突?
|
|
33
把 EF 中的相关表删掉,重新拉取。
|