УчитываяEntity Framework Необходимого Свойство Без Отношения
class Foo()
{
Guid FooId;
Bar Bar;
}
class Bar()
{
Guid BarId;
}
Bar
является необходимым свойством Foo
, но нет базы данных связи между Foo
и Bar
. Назначив Foo
на номер Bar
, можно удалить Bar
из базы данных без удаления каких-либо Foo
.
Как это настроено в беглом API? Если я пытаюсь
entity.Property(e => e.Bar)
.IsRequired();
Entity Framework миграции бросает ошибку
The property 'Bar' cannot be added to the entity type 'Foo' because a navigation property with the same name already exists on entity type 'Foo'
Если я пытаюсь entity.HasOne(e => e.Bar).WithMany().IsRequired();
Entity Framework создает отношения в базе данных между Foo
и Bar
.
Как сделать Bar
Требуемое свойство Foo
не создавая отношений?
Итак, @Dmitry, если мы хотим, чтобы иметь возможность перемещаться с помощью 'Foo.Bar', мы должны иметь отношения? – Vague
Да. Либо у вас есть отношения в БД (и EF знает об этом и помогает вам), либо у вас нет отношений и перемещаться между объектами (и «принуждать» любую «целостность») «вручную». – Dmitry
Еще одно примечание. Существует действие 'DeleteBehavior.SetNull' - если для приложения установлено, что для параметра' Foo.BarId' установлено значение null, когда запись из 'Bar' удалена, вы можете создать связь с этим значением поведения. – Dmitry