EF Core table 只有外键

EF Core table with only foreign key

我有这种情况:

第二个table没有继承第一个。它将包含不同的信息

我正在使用 EF Core,但在为两个实体配置模型时遇到了问题。我使用流畅的 API 配置并使用 EF Core 迁移来创建 table。机型及配置如下:

public class Table1 
{
    public long Id { get; set; }
    public string FirstName { get; set; }

    public List<Table2> T2 { get; set; }
}

public class Table1Configuration : IEntityTypeConfiguration<Table1>
{
    public void Configure(EntityTypeBuilder<Table1> builder)
    {
        builder.ToTable("table1");

        builder.Property(s => s.Id)
            .HasColumnName("id")
            .HasColumnType("serial");

        builder.Property(s => s.FirstName)
            .HasColumnName("first_name");
    }
}

第二个:

public class Table2 
{
    public long Table1Id { get; set; }
    public DateTime Timestamp { get; set; }
    public double Value { get; set; }

    public Table1 T1 { get; set; }

}

public class Table2Configuration : IEntityTypeConfiguration<Table2>
{
    public void Configure(EntityTypeBuilder<Table2> builder)
    {
        builder.ToTable("table2");

        builder.Property(s => s.Table1Id)
            .HasColumnName("table1_id");
        builder.HasNoKey();

        builder.Property(s => s.Timestamp)
            .HasColumnName("ts");

        builder.Property(s => s.Value)
            .HasColumnName("value");

        builder.HasOne(s => s.T1)
            .WithMany(s => s.T2)
            .HasForeignKey(s => s.Table1Id);
    }
}

当我 运行 Update-Database 命令时它抛出异常:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
System.InvalidOperationException: The navigation '' cannot be added because it targets the keyless entity type 'Table2'. Navigations can only target entity types with keys.

我们怎么能有一个只有外键的table?我不想为主键添加额外的列,因为第二个 table 会经常刷新

如果我遗漏了一些有用的信息,请让我在评论中加入!

提前致谢, 朱利安

正如@Bryan Lewis 在评论中所建议的那样,由于有人遇到了同样的问题,我刚刚向 table

添加了一个主键