我是否可以在实体框架中获取要自动递增的主键,同时拥有其他键



我正在使用实体框架和VS 2015进行MVC项目。

到目前为止,它已经奏效了。现在我已经制作了一个关系表实体来链接两个表,但我无法让键列自动递增。正是因为我不想删除现有表中的某些约束,所以我选择创建一个单独的实体。

它看起来像这样:

public class UserCustomer
{
    [Key]
    public int UserCustomerID { get; set; }
    [Index("IX_UserAndCustomer", 1, IsUnique = true)]
    public int UserID { get; set; }
    [Index("IX_UserAndCustomer", 2, IsUnique = true)]
    public int CustomerID { get; set; }
    public DateTime CreatedDate { get; set; }
    public UserCustomer()
    {
        CreatedDate = DateTime.Now;
    }
}

键列不会自动递增。

例如,我尝试过Fluent API:

        //modelBuilder.Entity<UserCustomer>()
        //    .HasKey(u => new { u.CustomerID, u.UserID }); //26 maj -17
        //modelBuilder.Entity<UserCustomer>()
        //.Property(f => f.UserCustomerID)
        //.ValueGeneratedOnAdd();
        //modelBuilder.Entity<UserCustomer>()
        //    .Property(c => c.UserCustomerID)
        //    .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);//TYY Stack Overflow

但这并没有奏效。

如何使用户客户 ID 列作为键列自动递增?

如果我正确理解你的问题,你只需要 DatabaseGenerated Attribue:

public class UserCustomer
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int UserCustomerID { get; set; }
}

相关内容

最新更新