Возможны два сценария:
Первый: EntityB
уже существует в базе данных, и вы указываете EntityBId
из EntityB
на EntityBId
ForeignKey
нового EntityA
следующим образом, и в этом случае только EntityA
будет вставлен в базу данных:
EntityB entityB = dbContext.EntityBs.FirstOrDefault(yourCondition)
EntityA entityA = new EntityA();
entityA.EntityBId = entityB.EntityBId; // <-- assign `ForeignKey` value instead of navigation property value, hence no required validation error will occur
dbContext.EntityAs.Add(entityA);
dbContext.SaveChanges();
Секунда: EntityB
еще не существует вбаза данных, и она будет вновь добавлена в базу данных вместе с EntityA
.Так что в этом случае ваш код должен выглядеть следующим образом:
EntityB entityB = new EntityB();
dbContext.EntityBs.Add(entityB);
EntityA entityA = new EntityA();
entityA.EntityBId = entityB.EntityBId; // <-- assign `ForeignKey` value instead of navigation property value, hence no required validation error will occur
dbContext.EntityAs.Add(entityA);
dbContext.SaveChanges();
Теперь решите, каков ваш сценарий и сделайте соответственно.