Я использовал такое соглашение, как это в бета-версии EF6:
public class NavigationPropertyConfigurationConvention : IConfigurationConvention<PropertyInfo, NavigationPropertyConfiguration>
{
public void Apply(PropertyInfo propertyInfo, Func<NavigationPropertyConfiguration> configuration)
{
var foreignKeyProperty = propertyInfo.DeclaringType.GetProperty("Id" + propertyInfo.Name);
if (foreignKeyProperty != null && configuration().Constraint == null)
{
var fkConstraint = new ForeignKeyConstraintConfiguration();
fkConstraint.AddColumn(foreignKeyProperty);
configuration().Constraint = fkConstraint;
}
}
}
Но поскольку интерфейс IConfigurationConvention помечен как внутренний, я не могу обновить свои ссылки на EF. Искал во многих местах, но не нашел, как воспроизвести эту функциональность в версии RTM.
Я также пробовал это, но, похоже, работает только с независимыми ассоциациями (IA), что не так. мой случай, потому что у меня есть FK в объектах CLR.
Кто-нибудь сделал это снова работает?
Спасибо!