Есть ли способ в Entity Framework 4 (с использованием CTP4 и Code First, если это имеет значение) изменить соглашения, используемые для автоматической идентификации первичных и внешних ключей? Я пытаюсь использовать EF с устаревшей базой данных, которая использует префикс «pk / fk» вместо суффикса «id» для маркировки ключей. Кроме того, весьма часто иметь несколько внешних ключей для таблицы адресов, например, с именами "fkAddressHome" и "fkAddressWork".
Я бы предпочел метод для систематического изменения этого поведения, чтобы мне не приходилось указывать эти изменения для каждой таблицы. Я рассмотрел возможность переопределения имен столбцов в методе OnModelCreating, но было разочаровывающе видеть, что если вы добавляете один столбец таким образом, то вам нужно добавить их все. И это нарушило мои СУХИЕ чувства.
Однако, любое решение будет оценено. EF4, и особенно улучшения Code First в CTP4, действительно очень хороши. Я с нетерпением жду встречи с тем, что еще входит в следующую версию EF. Спасибо за помощь.
Обновление
Мне удалось отобразить отношения, добавив в метод OnModelCreating следующее:
modelBuilder.Entity<User>()
.HasRequired<Address>(p => p.Address)
.HasConstraint((p, u) => p.fkAddressHome == u.pkAddress);
Я не уверен, является ли это наиболее элегантным подходом, или это в конечном итоге вызовет у меня какие-либо проблемы, но пока это работает.