В моем проекте .net core 2 у меня есть модель пользователя и файла, и у них есть отношения. В модели и в базе данных;
модель пользователя:
[DefaultValue(null)]
public int? AvatarId { get; set; }
[ForeignKey("AvatarId")]
public virtual File Avatar { get; set; }
модель файла:
[InverseProperty("Avatar")]
public ICollection<User> Users { get; set; }
Я получил моего пользователя с этим запросом
var user = this._db.User.Include(u => u.Avatar).FirstOrDefault(o => o.Id == id);
в контексте:
modelBuilder.Entity<User>()
.HasOne<File>(u => u.Avatar)
.WithMany(f => f.Users)
.HasForeignKey(u => u.AvatarId);
Если у пользователя есть аватар или у него нет аватара, свойство аватара возвращает ноль.