0

Angenommen, ich habe die folgende Tabellendefinition mit einem zusammengesetzten Primärschlüssel:Entity Framework 6 Datenbank Zuerst generiert Entity nicht auf Tabelle mit Composite-Key

create table [dbo].[CustomerRequests] (
    [CustomerId] int not null, 
    [RequestId] int not null, 
    constraint [PK_CustomerRequests] primary key clustered ([CustomerId] asc, [RequestId] asc), 
    constraint [FK_CustomerRequests_Customers] foreign key ([CustomerId]) references [dbo].[Customers] ([CustomerId]), 
    constraint [FK_CustomerRequests_Requests] foreign key ([RequestId]) references [dbo].[Requests] ([RequestId]) 
); 

Wenn ich das Modell aktualisieren, um diese Tabelle zu schließen, Entity Framework generiert die Entitätsklasse nicht. Liegt das an dem zusammengesetzten Primärschlüssel? Gibt es eine Möglichkeit Entity Framework die Entitätsklasse generieren zu lassen?

+0

Wenn ich EF verwendete, erstellten wir die Entitäten im Code und verwendeten dann Migrationen, um die SQL-Tabellen zu erstellen. Ich denke, es ignoriert Tabellen, die manuell in SQL erstellt werden. Nicht ganz positiv, nur will ich erlebt haben. –

+2

EF erstellt eine Viele-zu-Viele-Verknüpfung mit dieser Tabelle unsichtbar in der Mitte. Wenn Sie das nicht möchten, geben Sie der Tabelle einen einzelnen Ersatz-Primärschlüssel (oder ein anderes sinnvolles Feld). –

Antwort

0

Gert Arnolds Kommentar wies mich in die richtige Richtung, ebenso wie this answer.

Sobald ich neben den beiden Primärschlüsseln eine weitere Spalte hinzugefügt habe, hat Entity Framework die Entität generiert. Hier ist eine Beispieltabellendefinition, für die EF Database First eine Entität erstellen wird:

create table [dbo].[CustomerRequests] (
    [CustomerId] int not null, 
    [RequestId] int not null, 
    [TimestampUtc] datetime not null, 
    constraint [PK_CustomerRequests] primary key clustered ([CustomerId] asc, [RequestId] asc), 
    constraint [FK_CustomerRequests_Customers] foreign key ([CustomerId]) references [dbo].[Customers] ([CustomerId]), 
    constraint [FK_CustomerRequests_Requests] foreign key ([RequestId]) references [dbo].[Requests] ([RequestId]) 
); 
Verwandte Themen