У меня есть 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);
Получение ошибки:
Невозможно преобразовать лямбда-выражение в предполагаемый тип делегата. ..