当我尝试将一些示例数据插入到WP7应用程序内的SQL Server CE 3.5数据库中时,我收到以下异常:
错误:SqlCeException“该列不能包含空值 [列名=姓名,表名=考试]
name
也是主键。我想我已在DataContext
中正确宣布了一切。
private void InsertData()
{
mangoDb = new ExamDataContext();
// create a new exam instance
Exam exam = new Exam();
exam.Name = "History";
exam.Description ="History Exam";
// add the new exam to the context
mangoDb.Exams.InsertOnSubmit(exam);
// save changes to the database
mangoDb.SubmitChanges();
}
我哪里出错?
答案 0 :(得分:1)
我通过添加id
解决了这样修改IDENTITY (1,1)
字段声明的问题,因此我的id声明变为:
[id] int NOT NULL IDENTITY (1,1)
答案 1 :(得分:1)
在我目前使用.NetCore,SqlCE DB和Dapper ORM的项目中,我和我的同事遇到了相同的问题。 表中的ID列不是身份列。 甚至无法更改列
几个小时后,我们发现表示主键列的模型类属性必须用以下注释[Key],[Required]装饰。
例如:
dict(zip(l, d1))
答案 2 :(得分:0)
我通过删除表的索引解决了这个问题。不确定它为什么会起作用,但肯定会这样做,以防其他人遇到这个问题。