2015-11-02 7 views
5

Dieses Thema ist hier mehrmals, aber keine Antwort geben Sie mir die Option, wie Sie dieses Problem in EF vermeiden.Warnung Fehler 6002: Die Tabelle/Ansicht hat keinen Primärschlüssel definiert

Meine Warnung:

Warnung Fehler 6002: Die Tabelle/view 'ADContainersWithEnvironmentsView' keinen Primärschlüssel definiert haben. Der Schlüssel wurde abgeleitet und die Definition wurde als schreibgeschützte Tabelle/Ansicht erstellt.

Grundsätzlich verwende ich Datenbank ersten Ansatz mit EF in meinem Projekt.

Ich habe Ansicht:

CREATE VIEW [dbo].ADContainersWithEnvironmentsView 
AS 
WITH ADContainerWithEnvironments(Id, LinkedEnvironmentId) 
AS 
(
    SELECT adc.Id, adc.LinkedEnvironmentId 
    FROM ADContainer AS adc 
    WHERE ParentAdContainerId IS NULL 

    UNION ALL 

    SELECT subAdc.Id, parentAdc.LinkedEnvironmentId 
    FROM ADContainer AS subAdc 
    INNER JOIN ADContainerWithEnvironments parentAdc 
    ON subAdc.ParentAdContainerId = parentAdc.ID 
) 
SELECT ISNULL(Id,-1) AS Id, LinkedEnvironmentId FROM ADContainerWithEnvironments 

Wie in anderen Themen explaind ich PK aus meiner Sicht mit ISNULL (Id, -1) AS Id

ich auch in Diagramm markieren angeben müssen meine Id als Entity Key mein Screenshot enter image description here

diese Warnung prüfe ich für alle meine 10 Ansichten haben. Nach meinen Änderungen schließe ich mein Visual Studio, sogar Neustart pc, oder versuche es auf anderen PC :) aber Warnung ist immer noch da.

Danke für Hilfe.

Antwort

0

Sie erhalten die Warnung, weil die Ansicht keinen Primärschlüssel im selben Sinne wie Tabellen hat. Da Sie wahrscheinlich nichts in die Ansicht einfügen, können Sie die Warnung ignorieren und die Ansicht nur zum Abfragen verwenden.