Entity Framework 4.0:Добавление свойства в таблицу для хранения объекта из другой таблицы?

StackOverflow https://stackoverflow.com/questions/2363843

Вопрос

Я хотел создать новое свойство таблицы в моей модели.По сути, у меня есть таблица контракта, в которой много полей, но я хочу добавить еще одно поле под названием «клиент», в котором будет храниться другая моя таблица под названием «клиент».

Я пробовал играть со сложными типами, но не знаю, так ли это....Затем я нашел свойство навигации...это звучало интересно...типа ссылку на клиента может быть??..но я мог бы указать это куда угодно..

По сути, для таблицы/модели контракта требуется новое свойство, называемое клиентом...клиент на самом деле является юридическим лицом, но клиент должен путешествовать по контракту.

Как это делается??

Я хотел настроить это в модели, чтобы я мог автоматически ОБНОВЛЯТЬ модель и т. д....и не потерять никаких пользовательских изменений.

Я мог бы, конечно, просто вставить что-нибудь в класс Partial в другой файл....

Есть идеи?

Спасибо

Это было полезно?

Решение

То, что вы пытаетесь сделать, обычно достигается путем правильного определения отношений первичного/внешнего ключа между таблицами в базе данных (или между полями в вашей модели, если вы используете модельно-ориентированное проектирование).

Entity Framework автоматически увидит связь внешнего ключа между таблицами и сгенерирует свойство родительского класса для хранения дочернего элемента.

Что касается вашего комментария (что лучше: определение отношений в модели или создание частичных классов):

Гораздо лучше определить отношения в вашей модели для реализации в частичных классах.Наличие отношений, определенных в вашей модели, обеспечит целостность, даже если ваша база данных этого не делает... тогда как, если бы вы использовали частичные классы, вам пришлось бы самостоятельно кодировать обеспечение.

Другие советы

Если возможно, я думаю, вам стоит добавить в таблицу контрактов внешний ключ, содержащий первичный ключ вашего клиента.Затем вы можете нажать «обновить модель», чтобы добавить свойство навигации в вашу модель.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top