Таблица EF Core только с внешним ключом - PullRequest
0 голосов
/ 11 апреля 2020

У меня такая ситуация:

enter image description here

Вторая таблица не наследует первую. Он будет содержать различную информацию

Я использую EF Core и у меня проблемы с настройкой моделей для двух объектов. Я работаю с текущими конфигурациями API и использую EF Core Migrations для создания таблиц. Модели и их конфигурации следующие:

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: исключение было сгенерировано целью вызова.
System.InvalidOperationException: навигация '' не может быть добавлена, поскольку она нацелена на тип объекта без ключа 'Table2'. Навигация может ориентироваться только на типы объектов с ключами.

Как мы можем иметь таблицу только с внешними ключами? Я не хочу ставить дополнительный столбец для первичного ключа, потому что вторая таблица будет часто очищаться

Если я пропущу некоторую информацию, которая будет полезна, пожалуйста, попросите меня включить ее в комментарии!

Заранее спасибо, Джулиан

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...