2017-05-26 32 views
0

我的工作與實體框架和VS 2015我可以得到一個主鍵在實體框架自動遞增,同時具有其他重要

到目前爲止它已經工作了MVC項目。現在我創建了一個關聯表實體來鏈接兩個表,並且我無法讓Key-column自動遞增。這是因爲我不想刪除現有表中的某些約束條件,而我選擇這些約束條件來創建單獨的實體。

它看起來像這樣:

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; 
    } 

} 

鍵列不會成爲自增。

我試圖用流利的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 

但是,這並沒有奏效。

如何使UserCustomerID列自動遞增,作爲鍵列?

回答

0

如果我正確理解你的問題,你只需要DatabaseGeneratedAttribue

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

這只不過是OP不同,因爲它是默認的EF約定'int' PK。 –