2016-06-02 15 views
6

Sto provando a creare dal database utilizzando il primo framework Entity del codice, all'interno di un progetto ASP Core 1, RC2.Configurare una chiave principale non shadow per questa relazione

e ricevo questo messaggio di errore:

il tasto { 'RIF'} contiene proprietà in stato di ombra e fa riferimento un rapporto da 'TaskStatus' a 'TaskRunner.IsRunning'. Configurare una chiave principale non shadow per questa relazione.

Qualcuno ha un'idea di cosa significa questo errore?

Si noti che non ho il nome di una colonna tempId. Mi fa piacere che EF7 costruisca questa colonna per se stessa.

Qui è la mia entità

public class TaskStatus 
{ 
     public Guid TaskConfigId { get; set; } 
     public string LastResultValue { get; set; } 
     public int RetryCount { get; set; } 
     public TaskStatusEnum StatusEnum { get; set; } 
     public DateTimeOffset LastUpdate { get; set; } 
     public TaskResult TaskResult { get; set; } 
     public TaskStatusEnum TaskStatusEnum { get; set; } 
} 

public class TaskRunner 
{ 
    public DateTimeOffset RunAt { get; set; } 
    public TaskConfig TaskConfig { get; set; } 
    public Guid TaskConfigId { get; set; } 
    public TaskStatus IsRunning { get; set; } 
} 
+0

Qual è il valore di "contiene proprietà in stato di ombra"? – Hugo

risposta

4

sono stato in grado di risolvere questo problema specificando manualmente una proprietà come la chiave primaria sui miei modelli. Potresti provare a inserire un attributo [Key] su TaskConfigId e magari aggiungere un campo chiave primaria a TaskRunner.

This bug report allude che l'uso delle proprietà di navigazione richiede chiavi primarie esplicite, piuttosto che lasciare che EF cerchi di decidere quale proprietà è il PK in base alle convenzioni di denominazione.

Credo che Shadow Properties significhi semplicemente le proprietà (colonne della tabella) create per supportare le proprietà di navigazione, ad esempio una colonna denominata IsRunningTaskStatusId sulla tabella TaskRunner, che contiene la chiave primaria del TaskStatus associato. https://docs.efproject.net/en/latest/modeling/shadow-properties.html

Problemi correlati