0

Как создать объект с свойством навигации другому объекту, но без создания внешнего ключа.EF6 - Объект с навигационным свойством, но без FK

Ex:

класс EntityType {Id, код, описание}

класс Entity {Id, имя, возраст, EntityType, EntityTypeId}

класс EntityHistory {Id, EntityId , Имя, возраст, EntityType, EntityTypeId}

В моем классе Entity я хочу нормальное свойство навигации и внешний ключ. Но в EntityHistory я хочу свойство navigation, я хочу иметь EntityTypeId, но я не хочу создавать отношение в базе данных между EntityHistory и EntityType.

В моей модели EntityHistory является таблицей аудита от Entity, она записывается только через Entity Trigger и в этом случае не имеет смысла создавать отношение в базе данных (например, это слишком сильно замедляет объемная вставка миллионов записей) Но я хочу свойство навигации, потому что хочу получить информацию в пользовательском интерфейсе.

Так что моя конечная цель - просто предотвратить SQL Server для проверки ограничения в внешнем ключе.

Thks

ответ

0

Вы должны создать оба конца отношения в вашей конфигурации, как эти сценарии:

1 => много:

HasRequired(charac => charac.Movie) 
    .WithMany(movie => movie.Characters); 

много => 1:

HasMany(movie => movie.Characters) 
    .WithRequired(character => character.Movie); 

Подробнее ... here.

Смежные вопросы