我有一些像下面这样的模型:
public class Mutant
{
public long Id { get; set; }
...
// Relations
public long OriginalCodeId { get; set; }
public virtual OriginalCode OriginalCode { get; set; }
public int DifficultyLevelId { get; set; }
public virtual DifficultyLevel DifficultyLevel { get; set; }
}
以及
public class OriginalCode
{
public long Id { get; set; }
...
// Relations
public virtual List<Mutant> Mutants { get; set; }
public virtual List<OriginalCodeInputParameter> OriginalCodeInputParameters { get; set; }
}
而在 DBContext
的 OnModelCreating
中,我按照以下方式建立了关联:
modelBuilder.Entity<Mutant>()
.HasOne(m => m.OriginalCode)
.WithMany(oc => oc.Mutants)
.HasForeignKey(m => m.OriginalCodeId)
.OnDelete(Microsoft.EntityFrameworkCore.Metadata.DeleteBehavior.Restrict);
modelBuilder.Entity<Mutant>()
.HasOne(m => m.DifficultyLevel)
.WithMany(dl => dl.Mutants)
.HasForeignKey(m => m.DifficultyLevelId)
.OnDelete(Microsoft.EntityFrameworkCore.Metadata.DeleteBehavior.Restrict);
现在当我请求突变体时,OriginalCode为空:
但是只要我像下面这样请求OriginalCode
:
那么突变体的OriginalCode
字段就不为空:
这是什么原因,我该如何解决?
Include
/ThenInclude
方法指定要“包含”的每个内容。据我所知,未来有一些计划可以自动完成此操作,但目前这是唯一的选择。 - Ivan Stoev