2013-02-12 15 views
7

EF5Code Firstを使用してデータベースを作成しています。エンティティにId fieldがある場合、EFはPrimary Keyというフィールドをデータベースに作成し、をtrue(自動生成値)に設定します。 Identity specification to false by defaultの設定方法は?ID指定をfalseに設定

答えて

19

IDキーを使用しない場合は、いくつかのオプションがあります。

オプション1:あなたがグローバルStoreGeneratedIdentityKeyConventionを削除することで、この機能をオフにすることができます

public class YourContext : DbContext { 
    protected override void OnModelCreating(DbModelBuilder modelBuilder) { 
     modelBuilder.Conventions.Remove<StoreGeneratedIdentityKeyConvention>(); 
    } 
} 

あなたが選択キーを選択して適用する属性または流暢なマッピングのいずれかで彼らのために動作を変更することができます。

オプション2:属性:

public class MyEntity { 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public int Id { get; set; }   
} 

オプション3:流暢API:

public class YourContext : DbContext { 
    protected override void OnModelCreating(DbModelBuilder modelBuilder) { 
     modelBuilder.Entity<MyEntity>() 
        .Property(e => e.Id) 
        .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); 
    } 
} 
関連する問題