该列不能包含空值。 SqlCE异常

时间:2012-09-20 11:19:52

标签: c# linq windows-phone-7 sql-server-ce

当我尝试将一些示例数据插入到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();
         }

我哪里出错?

3 个答案:

答案 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)

我通过删除表的索引解决了这个问题。不确定它为什么会起作用,但肯定会这样做,以防其他人遇到这个问题。