2011-07-08 9 views
0

私は2つのテーブルを持ちます。名前がPersonで、抽象的で、スカラープロパティ "Id"と "Name"を持ち、キー "Id"がプライマリキーです。私は、DBへの学生を挿入するために、次のコードを使用する人エンティティフレームワークの継承を使用すると挿入が失敗する

から継承する「学生」という名前の別の1:私は、データベースにデータを保存するためにSaveChangesメソッドを呼び出すと

TestModeContainer testModel = new TestModeContainer(); 
    Student student = testModel.CreateObject<Student>(); 
    student.Id = "s1"; 
    student.Grade = "g2"; 
    student.Name = "Lighter.Spark"; 
    testModel.AddObject("PersonSet", s); 

    testModel.SaveChanges(); 

、System.Data.UpdateExceptionが発生しました。内部の例外は "列 'ID'、テーブル 'Temp.dbo.PersonSet'にNULL値を挿入できません;列はNULLを許可しません。INSERTは失敗します。\ r \ nステートメントが終了しました。 誰に教えてもらえますか?これを修正する方法は?

+0

EDMXまたはコードの最初のマッピングを使用していますか? –

+0

私はEDMXコードジェネレータを使用します – user739576

+0

'Person'エンティティを開くと' Id'フィールドの 'StoreGeneratedPattern'のプロパティにどのような値が見えますか? –

答えて

2

IdフィールドのStoreGeneratedPatternNoneに変更してください。 Identityは、値がデータベースに設定され、アプリケーションで設定された値が決してデータベースに渡されないことを意味します。

+0

ありがとうございました – user739576

+0

ありがとうございました!私は今、その違いを理解しています。 –

関連する問題