首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Entity Framework Code First:Model 生成資料庫後設置 ID 自動增長

     編輯:程式設計綜合問答

現象

使用 EF Code First 從實體類生成資料庫,主鍵 ID 未自動設置為 IDENTITY(1,1)。

解決方案:Data Annotation 標記


using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

public class Entity {
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }
    // 其他屬性...
}

替代方案:Fluent API


protected override void OnModelCreating(DbModelBuilder modelBuilder) {
    modelBuilder.Entity()
        .Property(e => e.ID)
        .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
}

注意事項

  • SQL Server 對應 IDENTITY(1,1),MySQL 對應 AUTO_INCREMENT,PostgreSQL 對應 SERIAL,EF 會根據 Provider 自動轉換。
  • 若已生成遷移腳本,需 Add-Migration 重新生成並 Update-Database。
  • 複合主鍵或 GUID 主鍵請用 DatabaseGeneratedOption.None 並手動賦值。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved