Für EF 6.1 und höher, wenn ich hinzufüge/Reverse Engineering-Entity-Modell Modell/Code-Generierung in VS15 & SQL-Server 2k16 Datenbank meine Einheiten fehlen beide Id, und automatisches Inkrementieren von Datenanmerkungen. Saw this und this Frage zu SO, aber keine Antworten, nur dass es ein Bug ist, suche ich eine Option, um den PK Key, Auto Increment zu generieren.EF Datenbank erste Codegenerierung fehlt Key und Datenaufbelichtung
Frage: Wie kann ich sicherstellen, dass die ID-Schlüssel & Auto-Erhöhungs-Optionen für die Einheiten hinzugefügt werdenbei der Codegenerierung? Es gibt keine Datenanmerkungen außer auf den Fremdschlüsseln! Kann ich EF auch dazu bringen, zusammengesetzte Schlüssel zu generieren?
Was ich tat: In der Datenbank hinzugefügt ich den Set Primärschlüssel auf dem [Id]
col als int
, Ich habe auch Identity true
, seed 1
, auto increment 1
Z.B. fehlende Primärschlüssel
//E.g. Reverse Eng. Generated code from ASP table
public partial class AspNetUsers
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public AspNetUsers()
{
this.AspNetUserClaims = new HashSet<AspNetUserClaims>();
this.AspNetUserLogins = new HashSet<AspNetUserLogins>();
this.AspNetRoles = new HashSet<AspNetRoles>();
}
// Missing Primary Key
public string Id { get; set; }
public Nullable<int> IdNumber { get; set; } ...
Z.B. 2 Fehlende beide Primärschlüssel & Autoinkrement
public partial class AuditNetEvent
{
//Reverse Generated code missing Primary Key & Auto Increment
public bigint Id { get; set; }
public System.DateTime InsertedDate { get; set; }
Wenn ich Reverse Engineering meine Datenbank in Code erste Klassen, es schafft die POCO-Klassen ohne Anmerkungen und einem Modellklasse mit dem Kontext, dbsets und fließendem Code (OnModelCreating), um die Schlüssel, Beziehungen usw. für alle ausgewählten Tabellen zu definieren. –
@SteveGreene wenn ich richtig verstehe, ist dies Standardverhalten, richtig? Ich habe den 'DbMode.Context' eingecheckt, er erstellt die Sätze in Ordnung, aber keine Schlüssel 'protected override void OnModelCreating (DbModelBuilder modelBuilder) { neue UnintentionalCodeFirstException() werfen; } '- Wie bekomme ich es da drin? – transformer
Ich habe die [Code Generation Templates] (https://www.nuget.org/packages/EntityFramework.CodeTemplates.CSharp/) wie beschrieben [hier] (https://entityframework.codeplex.com/workitem/2241) optimiert . –