5

主キーIDがID列であるテーブルがあります。新しいレコードが作成されると、idが1ずつ増えると思います。

ただし、デバッグ中に0であることがわかりました。なんで?

必要なコード:

  public DbSet<testDetails> testDetailRecords { get; set; }
  testDetails test = testContext.testDetailRecords.Create();
  // test.id is 0 when hover over it
  public class testDetails : IEntityWithRelationships
  {
      [Key]
       [Required]
       [Display(Name = "Primary Key", Description = "Primary Key")]
       [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
       public long id { get; set; }
4

4 に答える 4

9

レコードは、を使用してコミットするまで作成されませんSaveChanges()

于 2012-11-15T15:59:09.987 に答える
5

まだ作成されていないので0です。

        TestContext context = new TestContext();

        var increment = context.IncrementTest.Create();
        increment.name = "testbyme";

        context.IncrementTest.Add(increment);


        context.SaveChanges();

それは私にとって例外を投げることなく機能します。

于 2012-11-15T16:05:32.917 に答える
1

新しいレコードが作成されると、idが1ずつ増えると思います。

誰ですか?DBMS。レコードは現在どこにありますか?アプリケーションでのみ。

を呼び出しtestContext.SaveChanges()てデータベースにレコードを挿入します。その後、エンティティのidプロパティが更新されます。

于 2012-11-15T15:59:15.157 に答える
0

SaveChanges()は、影響を受ける行の数を返します。0が返された場合、何も保存されていません。アイテムが保存されているかどうかを確認するには:

int rows affected = 0;
if(rows_affected = context.SaveChanges() > 0)
   System.Writeline("Saved!");
else
   System.Writeline("Nothing saved! Check error using try catch");
于 2015-04-13T02:56:09.823 に答える