Разрешить нулевой внешний ключ с помощью Entity Type Builder - PullRequest
0 голосов
/ 30 мая 2019

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

 public void Configure(EntityTypeBuilder<CostCenter> entity)
        {
            entity.ToTable("CostCenter", ApplicationDataContext.DEFAULT_SCHEMA);

            entity.Property(e => e.Id).ValueGeneratedNever();

            entity.Property(e => e.Name)
                .IsRequired()
                .HasMaxLength(150)
                .IsUnicode(false);

            entity.Property(e => e.Uid).HasColumnName("UID");

            
            entity.Property(e => e.UpdatedBy)
                .IsRequired()
                .HasMaxLength(250)
                .IsUnicode(false);

            entity.Property(e => e.UpdatedOn).HasColumnType("datetime");

                
                
        }

Теперь мне нужно сделать этот атрибут нулевым

entity.HasOne(e => e.Owner)
                .WithMany()
                .HasForeignKey(d => d.OwnerId)
                .HasConstraintName("FK_CostCenter_Account_OwnerId");

1 Ответ

0 голосов
/ 31 мая 2019

Я думаю, что вы хотите настроить, что если CostCenter имеет нулевой OwnerId, то CostCenter не имеет Owner.

Видимо, некоторые CostCenters имеют Owners,а некоторые нет: Owner не является обязательным.Это отношение ноль или один-ко-многим.

public void Configure(EntityTypeBuilder<CostCenter> costCenterEntity)
{
    ...

    costCenterEntity.HasOptional(costCenter => costCenter.OwnerId)                    // The owner is optional
        .WithMany(owner => owner.CostCenters)  // the owner has zero or more CostCenters
        .HasForeignKey(costCenter => costCenter.OwnerId)
}

Возможно, вам нужно определить OwnerId как свойство, допускающее обнуляемость

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