Как установить внешний ключ с помощью Entity Framework Fluent API - PullRequest
0 голосов
/ 09 мая 2020

У меня есть 2 объекта TblCountry и TblState, где я хочу установить внешний ключ для отношения «один ко многим». Внешний ключ CountryId из TblState будет ссылаться на TblCountry> CountryId.

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.HasAnnotation("Relational:DefaultSchema", "dbo");
    modelBuilder.Entity<TblCountry>(entity =>
    {
        entity.HasKey(e => e.CountryId);

        entity.ToTable("tbl_Countries", "dbo");

        entity.Property(e => e.CountryId).HasColumnName("CountryId");
        entity.Property(e => e.CountryName)
            .IsRequired()
            .HasMaxLength(120)
            .IsUnicode(false);
    entity.Property(e => e.Status).HasMaxLength(1).HasDefaultValue(1);
    });

    modelBuilder.Entity<TblState>(entity =>
    {
        entity.HasKey(e => e.StateId);

        entity.ToTable("tbl_States", "dbo");

        entity.Property(e => e.StateId).HasColumnName("StateID");

        entity.Property(e => e.StateName)
            .IsRequired()
            .HasMaxLength(120)
            .IsUnicode(false);
        entity.Property(e => e.CountryId)
        entity.Property(e => e.Status).HasMaxLength(1).HasDefaultValue(1);
    });
} 

Я пробовал описанный ниже способ, но не работал у меня.

 modelBuilder.Entity<TblState>().HasOne<TblCountry>
 (s => s.CountryId).WithMany(g => g.CountryId).HasForeignKey(s => s.CountryId);

Получение ошибки:

Невозможно преобразовать лямбда-выражение в предполагаемый тип делегата. ..

...