2017-01-23 3 views
1

definierte ich einen Blick in meiner DB und dann schrieb ich die Entitätsdefinition im Code:Entity Framework-Code Erster SQL Server Ansicht

[Persistence] 
    [Table("ADMV_APPLICATION_OPTION")] 
    public partial class ADMV_APPLICATION_OPTION 
    { 
     public string ID_APPLICATION_OPTION { get; set; } 
     public string DS_APPLICATION_OPTION { get; set; } 
     public byte FL_TYPE { get; set; } 
     public Nullable<double> OPTION_NUM_VALUE { get; set; } 
     public string OPTION_STR_VALUE { get; set; } 
     public string OPTION_XML_VALUE { get; set; } 
     public System.Guid GUID_DIVISION_SAP { get; set; } 
     public string ID_DIVISION_SAP { get; set; } 
     public string ID_PLANT { get; set; } 
    } 

Wenn ich meine Anwendung ausführen erhalte ich die Fehler

Ein oder mehrere Validierungsfehler wurden während der Modellgenerierung festgestellt:

MES.Core.ADMV_APPLICATION_OPTION:: EntityType 'ADMV_APPLICATION_OPTION' hat keinen Schlüssel definiert. Definieren Sie den Schlüssel für diesen EntityType.

Benötige ich einen Schlüssel auch für die Ansichten?

dank

+0

Sie müssen PrimaryKey hinzufügen, Entity Framework muss den Schlüssel kennen. –

+0

Auch für die Ansichten? – Galma88

+0

Ja Ansichten brauchen auch PK –

Antwort

1

Ihr Fehler sagen eindeutig, dass Sie PrimaryKey hinzufügen. Ansichten in EntityFramework benötigen auch PK. Sie können EF sagen, können einige Spalte als PK verwendet werden, ISNULL verwenden, wenn Sie Ansicht in SQL erstellen:

Create view SomeView 
As 
    Select 
     IsNull(YourUniqueId, -1) as YourUniqueId, 
     ... 
    From TableName 

oder mit Hilfe von Data Annotation Verwendung [Key] Attribut, das Setzen Sie dieses Attribut auf ID_APPLICATION_OPTION sicher sein, es ist einzigartig.

[Persistence] 
    [Table("ADMV_APPLICATION_OPTION")] 
    public partial class ADMV_APPLICATION_OPTION 
    { 
     [Key] 
     public string ID_APPLICATION_OPTION { get; set; } 
     public string DS_APPLICATION_OPTION { get; set; } 
     public byte FL_TYPE { get; set; } 
     public Nullable<double> OPTION_NUM_VALUE { get; set; } 
     public string OPTION_STR_VALUE { get; set; } 
     public string OPTION_XML_VALUE { get; set; } 
     public System.Guid GUID_DIVISION_SAP { get; set; } 
     public string ID_DIVISION_SAP { get; set; } 
     public string ID_PLANT { get; set; } 
    } 
Verwandte Themen