Я наследовал базу данных среднего размера, которую мы пытаемся использовать с Платформой Объекта в MVC2, переписывают, мы продолжаем работать. Мы использовали существующую базу данных для генерации модели данных (.edmx файл), и все было хорошо. Пока я не понял, что не мог использовать доступ записи через точку все поля.
appointment.Employee.name // works fine
appointment.Supervisor.name // this fails
appointment.SupervisorID // works and is an int
Когда я выглядел ближе, я видел, что первый случай, который работал, был наиболее вероятным счастливая случайность. Существует несколько столбцов в таблице для вещей как SupervisorID
, SecretaryID
, DogGroomerID
и так, на всех указывающих Employee
таблица и маркированный как внешние ключи. Похоже, что Visual Studio почти сделала правильную вещь, это просто назвало все это ассоциациями после того, как роли включили, затем присоединенные числа для создания их уникальными. Так следующие работы кода:
appointment.Employee1.name // My name
appointment.Employee7.name // My Boss's Name
appointment.Employee5.name // Fluffy's groomer's name
Но это действительно побеждает цель. Таким образом, что я делал неправильно или что неправильно конфигурируется, который заставил бы Visual Studio генерировать такие очевидно немые имена? Я пытался изменить их в визуальном инструменте моделирования, и он работал. Переименование Employee7
кому: Supervisor
имеемый желаемый эффект, но это не действительно масштабируемое решение для меня для пребывания в течение следующих 10 часов, переименовывая вещи. Что мы делаем, когда на базе данных газует клиент в поле снова, и я должен вытянуть в новой схеме?
Спасибо за любое понимание и справку!
- Eric
В контексте ASP.NET MVC вы можете использовать DisplayNameAttribute
для добавления метаданных к вашей модели. Эта статья в блоге поможет вам начать: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-2-modelmetadata.html