2017-05-09 2 views
0

que je suis en train d'apprendre comment Entity Framework fonctionne, je suis question suivante:C#/EF code modèle - relation champs obligatoires

sur la création d'un 1 de base: n relation (-premier code) j'ai lu que je devrais faire comme ceci:

public class Post 
{ 
    public int PostId { get; set; } 
    [MaxLength(200)] 
    public string Title { get; set; } 
    public string Content { get; set; } 

    public int BlogId { get; set; } 
    public Blog Blog { get; set; } 
} 

Il existe à la fois un champ de référence et un champ Id pour la relation book-post. Est-ce nécessaire?

J'ai toujours fait la connexion de base de données manuellement et avait seulement le champ de référence

public Blog Blog { get; set; } 

De cette façon, je peux accéder au blog Id aussi, et je n'ai pas de garder les deux mises à jour. Il semble que les migrations EF ne fonctionnent pas de cette façon.

Une raison pour cela? Est-il préférable de conserver les champs de référence, de référence et d'identification?

+0

devrait avoir aucun impact sur les migrations autres que si vous excluez le FK EF va créer pour vous en la base de données (Blog_ID). –

Répondre

1

Il n'est pas obligatoire d'inclure l'ID, mais si vous souhaitez activer le chargement paresseux en utilisant le mot clé virtuel et que vous n'avez besoin que de l'ID de l'objet, il peut être utile de l'inclure séparément.

Un exemple serait:

public virtual Blog Blog { get; set; } 
public int BlogId { get; set; } 

Pour plus d'informations sur le chargement paresseux/désireux: https://msdn.microsoft.com/en-us/library/jj574232(v=vs.113).aspx