2017-05-26 1 views
0

mit ich mit Entity Framework und VS auf einem MVC-Projekt arbeiten 2015Kann ich einen Primärschlüssel Autoinkrement in Entity Framework erhalten, während andere Schlüssel

Es bisher gearbeitet hat. Jetzt habe ich eine Relation Table-Entity erstellt, um zwei Tabellen zu verknüpfen, und ich kann die Key-Spalte nicht automatisch inkrementieren. Das war, weil ich einige Beschränkungen in den vorhandenen Tabellen nicht entfernen wollte, die ich wählte, um eine getrennte Entität zu bilden.

Es sieht wie folgt aus:

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

} 

Die Schlüsselspalte nicht automatisch erhöht werden.

Ich habe versucht Fluent API mit, zum Beispiel:

 //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 

Aber das hat nicht funktioniert.

Wie mache ich die UserCustomerID Spalte automatisch inkrementieren, wie eine Schlüsselspalte?

Antwort

0

Wenn ich Ihre Frage richtig zu verstehen, müssen Sie nur die DatabaseGeneratedAttribue:

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

Dies ist nicht anders als OP ist, weil es die Standard-EF-Konvention für 'int' PK ist. –

Verwandte Themen