首页 新闻 搜索 专区 学院

mvc3.0+ef4.1 添加新纪录到数据库出现错误Field 'Id' doesn't have a default value

0
悬赏园豆:20 [已解决问题] 解决于 2014-01-22 17:44

mvc3.0+ef4.1 添加新纪录到数据库出现错误Field 'Id' doesn't have a default value

下面是代码

if (model.Id == 0)
{
model.Id = 201401220001;
context.Site_Contents.Add(model);

}
else
{

//手动修改实体的状态
context.Entry(model).State = EntityState.Modified;
// EntityState
}
return context.SaveChanges() > 0 

旋转之刃的主页 旋转之刃 | 初学一级 | 园豆:184
提问于:2014-01-22 16:34
< >
分享
最佳答案
1

看看你的数据库定义的时候是不是把主键生成方式设置为int的,但是没有设置为自增的

收获园豆:20
Zery | 大侠五级 |园豆:6139 | 2014-01-22 17:01

非要设定成自增的吗 ?

旋转之刃 | 园豆:184 (初学一级) | 2014-01-22 17:30

@旋转之刃: 

当然不用只是ef默认会把名称为id的作为自增长的

http://www.cnblogs.com/dudu/archive/2011/04/06/2006116.html

Zery | 园豆:6139 (大侠五级) | 2014-01-22 17:40

@Zery: 谢谢问题解决 

旋转之刃 | 园豆:184 (初学一级) | 2014-01-22 17:45
其他回答(3)
0

1,一个是context.SaveChanges() 这个方法是保存修改吗?    是否调错了方法。因为看你的意思是新增。

2,就是楼上说的,主键自动标识,没有设置成自增的。

3,检查下映射文件。

贫民窟大侠 | 园豆:4276 (老鸟四级) | 2014-01-22 17:07

1.可以用这个方法进行新增 

2. 自增主键是必须的?

支持(0) 反对(0) 旋转之刃 | 园豆:184 (初学一级) | 2014-01-22 17:31
0

Field 'Id' doesn't have a default value 没有默认值

wolfy | 园豆:2636 (老鸟四级) | 2014-01-22 17:12

这个我懂....

支持(0) 反对(0) 旋转之刃 | 园豆:184 (初学一级) | 2014-01-22 17:31
0

4.1,你还是算了吧.

我可以做出的系统性能比你高N倍

[秦时明月] | 园豆:794 (小虾三级) | 2014-01-22 17:13

欢迎回答问题,但不欢迎答非所问者 连题目看不出来你的系统性能果然高

支持(0) 反对(0) 旋转之刃 | 园豆:184 (初学一级) | 2014-01-22 17:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册