Entity Framework: Карта внешнего ключа без свойства навигации?
Мотивация: мой EF4.1 DbContext сохраняет сущности в неправильном порядке
Причина: отсутствие навигационных свойств в моих моделях
Как я хочу это исправить:
Я хочу установить отношения внешнего ключа в моем DbContext. Суть в том, что у моих объектов-сущностей нет навигационных свойств (я использую его для заполнения веб-службы, а затем запускаю объекты DTO для моего приложения).
Классы ниже будут примером. В MinorClass я хочу настроить свой контекст так, чтобы он знал, что MajorClassID является внешним ключом. Статьи, которые я нашел в Интернете о том, как явно определять внешние ключи, включают использование навигационных свойств, которых нет у моих объектов.
Есть ли способ отобразить эти отношения?
public class MinorClass
{
public Guid ID {get;set:}
public Guid MajorClassID {get;set;} // foreign key
public string Name {get;set;}
}
public class MajorClass
{
public Guid ID {get;set;}
public string Name {get;set;}
}
1 ответ
Свойство навигации является первичной конструкцией, тогда как внешний ключ является помощником (imho неправильный помощник). EF распознает упорядочение команд БД по отношениям, которые определяются свойствами навигации. Вы не можете определить отношение только по внешнему ключу. Вам необходимо свойство навигации по крайней мере с одной стороны отношения.