Entity Framework 4.0:Добавление свойства в таблицу для хранения объекта из другой таблицы?
-
23-09-2019 - |
Вопрос
Я хотел создать новое свойство таблицы в моей модели.По сути, у меня есть таблица контракта, в которой много полей, но я хочу добавить еще одно поле под названием «клиент», в котором будет храниться другая моя таблица под названием «клиент».
Я пробовал играть со сложными типами, но не знаю, так ли это....Затем я нашел свойство навигации...это звучало интересно...типа ссылку на клиента может быть??..но я мог бы указать это куда угодно..
По сути, для таблицы/модели контракта требуется новое свойство, называемое клиентом...клиент на самом деле является юридическим лицом, но клиент должен путешествовать по контракту.
Как это делается??
Я хотел настроить это в модели, чтобы я мог автоматически ОБНОВЛЯТЬ модель и т. д....и не потерять никаких пользовательских изменений.
Я мог бы, конечно, просто вставить что-нибудь в класс Partial в другой файл....
Есть идеи?
Спасибо
Решение
То, что вы пытаетесь сделать, обычно достигается путем правильного определения отношений первичного/внешнего ключа между таблицами в базе данных (или между полями в вашей модели, если вы используете модельно-ориентированное проектирование).
Entity Framework автоматически увидит связь внешнего ключа между таблицами и сгенерирует свойство родительского класса для хранения дочернего элемента.
Что касается вашего комментария (что лучше: определение отношений в модели или создание частичных классов):
Гораздо лучше определить отношения в вашей модели для реализации в частичных классах.Наличие отношений, определенных в вашей модели, обеспечит целостность, даже если ваша база данных этого не делает... тогда как, если бы вы использовали частичные классы, вам пришлось бы самостоятельно кодировать обеспечение.
Другие советы
Если возможно, я думаю, вам стоит добавить в таблицу контрактов внешний ключ, содержащий первичный ключ вашего клиента.Затем вы можете нажать «обновить модель», чтобы добавить свойство навигации в вашу модель.