33 replies  •  2016-05-09 13:47:48 +08:00
CBBing
CBBing
OP
May 7, 2016
1
CBBing
CBBing
OP
May 7, 2016
2
CBBing
CBBing
OP
May 7, 2016
3
CBBing
CBBing
OP
May 7, 2016
4
haitang
haitang
May 8, 2016 via Android❤️1
5
查看异常的详细信息; id 22 是唯一的?
z67nnciQnb7r8bLf
z67nnciQnb7r8bLf
May 8, 2016❤️1
6
看看那个异常的 innerexception
CBBing
CBBing
OP
May 8, 2016
7
@haitang 目前数据库只有一条数据
CBBing
CBBing
OP
May 8, 2016
8
CBBing
CBBing
OP
May 8, 2016
9
@C0dEr 显示 ID 为 null ,但那个窗口 Id=22 说明有值啊
heaton_nobu
heaton_nobu
May 8, 2016❤️1
10
看看生成的语句是什么
CBBing
CBBing
OP
May 8, 2016
11
heaton_nobu
heaton_nobu
May 8, 2016❤️1
12
你生成的语句里面没有 Id 这列,看看是不是没设主键
vghdjgh
vghdjgh
May 8, 2016❤️1
13
如果是 EF 的 Code First ,你可以贴下模型是怎么映射的。
CBBing
CBBing
OP
May 8, 2016
14
@heaton_nobu
@vghdjgh 我设置了主键,但是是手动赋值的,现在改为自增主键,就可以了,请问是什么原因
heaton_nobu
heaton_nobu
May 8, 2016 via iPhone❤️1
15
@CBBing 有可能模型与数据库不一致,再同步看看呢
dong3580
dong3580
May 8, 2016 via Android❤️1
16
@CBBing
id 为 null?还设置的主键。
检查一下传值那部分,是不是哪儿没穿对
Choyes
Choyes
May 8, 2016 via Android❤️1
17
數據庫已經有了一條就不能再添加相同的主鍵值,你試著把那條刪掉然後再賦值應該就可以的,但是不建議給主鍵賦固定的值,要么隨機生成,要么自動增長
CBBing
CBBing
OP
May 8, 2016
18
@heaton_nobu 模型与数据库是一致的,现在写数据到数据库已经成功了
zkd8907
zkd8907
May 8, 2016❤️1
19
主键不是自增的时候,是需要你在 INSERT 的时候主动赋值的,要不 SQL Server 不知道 ID 是多少。
CBBing
CBBing
OP
May 8, 2016
20
@dong3580 可能是因为我之前没有设置主键自动生成,但那时候我数据库就一条数据,主键也不是 22
CBBing
CBBing
OP
May 8, 2016
21
@zkd8907 恩,我手动设置主键为 22,但还是一直不行,后来设置了主键自动生成就行了,按理说手动设置主键只要不冲突也可以吧?
CBBing
CBBing
OP
May 8, 2016
22
@Choyes 恩,我现在已经设置了主键自动生成
zkd8907
zkd8907
May 8, 2016❤️1
23
@CBBing 之前有没有过 ID 是 22 的记录?
dong3580
dong3580
May 8, 2016❤️1
24
@CBBing
1.设不设置主键无关紧要;
2.主键不能为空;
3.不能有相同的主键;
jame
jame
May 8, 2016❤️1
25
捕捉一下异常

if (ex is DbEntityValidationException)
message = ((DbEntityValidationException)ex).EntityValidationErrors.First().ValidationErrors.First().ErrorMessage;
CBBing
CBBing
OP
May 8, 2016
26
@zkd8907 没有,只有一条 Id=1 的记录
CBBing
CBBing
OP
May 8, 2016
27
@dong3580 设了 Id 为主键且只有一个,主键不为空,手动赋值为 22
CBBing
CBBing
OP
May 8, 2016
28
@jame 我的理解是异常在前面的图里就有,还是说有些异常需要手动捕捉?
CBBing
CBBing
OP
May 8, 2016
29
jame
jame
May 8, 2016❤️1
30
Linq 不显示详细信息,需要使用如下代码才能显示明细。
try {
db.saveChanges();
}catch(Exception ex){
if (ex is DbEntityValidationException)
message = ((DbEntityValidationException)ex).EntityValidationErrors.First().ValidationErrors.First().ErrorMessage;
}
CBBing
CBBing
OP
May 9, 2016
31
@jame 谢谢,我试试看
CBBing
CBBing
OP
May 9, 2016
32
@jame 我出错时的数据表名 Comments,model 的类是 Comment,但表中还有一个属性名为 comment,我把主键设置为自增之后,还是不能插入数据库,但是我把名为 comment 的属性改为 review 之后,一切都正常了。而且刚刚我测试现在的代码也没有报错,我在想是不是属性名和 model 类名有冲突?
jame
jame
May 9, 2016❤️1
33
把 EF 中的相关表删掉,重新拉取。
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3756 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 43ms · UTC 10:04 · PVG 18:04 · LAX 02:04 · JFK 05:04
♥ Do have faith in what you're doing.