Dans mon projet .net core 2, j'ai un modèle d'utilisateur et de fichier et ils ont une relation. Dans le modèle et dans la base de données ;
modèle d'utilisateur :
[DefaultValue(null)]
public int? AvatarId { get; set; }
[ForeignKey("AvatarId")]
public virtual File Avatar { get; set; }
modèle de fichier :
[InverseProperty("Avatar")]
public ICollection<User> Users { get; set; }
J'obtiens mon utilisateur avec cette requête
var user = this._db.User.Include(u => u.Avatar).FirstOrDefault(o => o.Id == id);
dans le contexte :
modelBuilder.Entity<User>()
.HasOne<File>(u => u.Avatar)
.WithMany(f => f.Users)
.HasForeignKey(u => u.AvatarId);
Si l'utilisateur a un avatar ou n'a pas d'avatar, la propriété Avatar retourne null.