В моем случае у меня было свойство Сгенерированная база данных и свойство навигации ForeignKey, настроенное для ссылки на связанную таблицу 1: 1.
Это не было чем-то, что я мог удалить, мне нужно было иметь возможность установить первичный ключ объекта, который должен быть сгенерирован из базы данных, и мне нужно было иметь возможность ссылаться на таблицу 1 к 1 как свойство навигации.
Не уверен, что это то же самое для других, но эта проблема появлялась только тогда, когда создание новой сущности, чтение или редактирование существующих сущностей не показывало проблему, поэтому я решил эту проблему, создав унаследованную версию моей Контекст и использование метода Fluent для отключения свойства навигации при создании.
Итак, моя первоначальная сущность выглядела так:
public partial class MyEntity
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid id{ get; set; }
// Navigation
[ForeignKey("id")]
public PathEntity Path { get; set; }
}
Итак, я создал специальный унаследованный контекст, который выглядел так:
private class _navPropInhibitingContext : EF.ApplicationDBContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<MyEntity>()
.Ignore(e => e.Path);
}
}
и затем изменил код, который создал новую сущность, чтобы сделать пользователя новым типом контекста
using (var specialContext = new _navPropInhibitingContext())
{
var dbModel = new MyEntity()
{
...
};
specialContext.MyEntity.Add(dbModel);
await specialContext.SaveChangesAsync();
}
Надеюсь, это кому-нибудь поможет