Creare la chiave esterna utilizzando le annotazioni di dati
-
20-12-2019 - |
Domanda
Nel codice qui sotto, ho bisogno di impostare un comodo tasto estraneo su ParentInFoaddDProperties.ParentQuestionansWersID in modo da dipendere da ParenChensionanswers.ID (che è una chiave primaria).Sto tentando di farlo utilizzando le annotazioni di dati, ma Entity Framework 6 vuole creare una nuova colonna chiave straniera nella mia tabella ParentQestionanswers che fa riferimento alla colonna ParentInFoaddDProperties.Il colonna non è la colonna ParentQuentionansWersid.Non voglio un framework di entità per creare una nuova colonna chiave straniera.
apprezzerei molto se qualcuno può spiegare quali annotazioni dati o (se necessario) mapping fluenti dovrei specificare per ottenere il costrutto del tasto estraneo desiderato.Grazie in anticipo.
namespace Project.Domain.Entities
{
public class ParentQuestionAnswers
{
public ParentQuestionAnswers()
{
ParentInfoAddProperties = new ParentInfoAddProperties();
}
[Required]
public int Id { get; set; }
[Required]
public int UserId { get; set; }
public ParentInfoAddProperties ParentInfoAddProperties { get; set; }
}
public class ParentInfoAddProperties
{
[Required]
public int Id { get; set; }
[Required]
public int ParentQuestionAnswersId { get; set; }
}
}
. Soluzione
È possibile utilizzare la seguente annotazione dei dati e utilizzare entità invece di int
[Required]
[ForeignKey("ParentQuestionAnswers")]
public ParentQuestionAnswers ParentQuestionAnswers { get; set; }
.
Per ottenere l'ID solo è possibile aggiungere la proprietà
public int ParentQuestionAnswersId { get; set; }
.
Ma hai ancora bisogno della proprietà ParentQuestionAnswers
, quindi EF ti capirà.
(queste righe di codice devono essere sotto la classe ParentInfoAddProperties
)
Altri suggerimenti
Aggiungi il
[KeyAttribute]
.
alla colonna ID
e
[ForeignKeyAttribute]
.
alla proprietà ParenChensionansWersid.