EF Core:如何在单向关系中指定外键

Mas*_*r_T 5 c# entity-framework-core .net-core

我正在使用Entity Framework Core 6Fluent API 在项目中配置数据库架构.NET Core

当声明双向关系时,我们可以轻松指定外键,如下所示:

modelBuilder.Entity<Foo>()
    .HasMany(x => x.Bars)
    .WithOne(x => x.Foo)
    .HasForeignKey(x => x.FooId);
Run Code Online (Sandbox Code Playgroud)

但是,如果我们有这样的单向关系:

modelBuilder.Entity<Foo>()
    .HasOne(x => x.Bar);
Run Code Online (Sandbox Code Playgroud)

我不明白如何指定外键,因为该.HasOne方法不返回具有该.HasForeignKey()方法的对象。

在这些情况下如何指定外键?

小智 9

尝试做这样的事情:

  modelBuilder.Entity<Foo>()
            .HasOne(x => x.Bar)
            .WithOne()
            .HasForeignKey(e => e.Whatever);
Run Code Online (Sandbox Code Playgroud)

另外这个也许也可以帮助你检查