0

WP7アプリケーション内のSQLServerCE 3.5データベースにサンプルデータを挿入しようとすると、次の例外が発生します。

エラー:SqlCeException"列にnull値を含めることはできません。
[列名=名前、テーブル名=試験]

これ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();
         }

どこが間違っているのですか?

4

3 に答える 3

1

id宣言が次のようになるように id追加することで、この変更フィールド宣言のような問題を解決しました。IDENTITY (1,1)

[id] int NOT NULL  IDENTITY (1,1)
于 2012-12-19T05:39:33.283 に答える
1

.NetCore、SqlCE DB、およびDapper ORMを使用した現在のプロジェクトでは、私と同僚が同じ問題を経験しました。テーブルのID列ではないId列がありました。列を変更することもできませんでした

数時間後、主キー列を示すモデルクラスプロパティは、次のアノテーション[Key]、[Required]で装飾する必要があることがわかりました。

元:

public class Exam
{
    [Key]
    [Required]
    public string Name { get; set; }

    // Other properties...
}
于 2020-12-17T16:45:37.537 に答える
0

テーブルのインデックスを削除することで問題を解決しました。なぜそれが機能したのかはわかりませんが、他の誰かがこの問題に遭遇した場合に備えて、確かに機能しました。

于 2012-09-21T01:29:10.693 に答える