EF 中老外们都默认ID 列为主键,要是想 取消ID 为主键 ,设置 其他列为主键的方法:
第一步,取消主键 :
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public Int32 Id
{
set{ _id=value;}
get{return _id;}
}
二: 添加主键:
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ItemId{get;set;}
三:重写EF OnModelCreating 方法
/// <summary>
/// 产品类别 ID自增 重写
/// </summary>
/// <param name="modelBuilder"></param>
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Tb_ProductClass>().Property(p => p.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
modelBuilder.Entity<Tb_ProductClass>().HasKey(c=>c.ItemId).Property(p => p.ItemId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
modelBuilder.Entity<Tb_Products>().Property(p => p.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
modelBuilder.Entity<Tb_Products>().HasKey(p => p.ItemId).Property(p => p.ItemId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
}