Entity Framework, модель первого дизайна, не позволит вам редактировать сопоставления таблиц? - PullRequest
3 голосов
/ 23 июля 2011

Если мы какое-то время использовали модель Entity Framework 4 и в конечном итоге хотим переключить базовую базу данных на продукт другого поставщика (скажем, с SQL Server на MySQL), можно ли просто настроить таблицу и Отображения столбцов в модели объекта без необходимости обновления какого-либо кода класса объекта?

Мы пытаемся спроектировать код, максимально независимый от базы данных, поэтому я хотел бы заранее знать, сколько у нас проблем, если мы когда-нибудь переключим наши базы данных. В идеале нам не нужно касаться наших приложений, которые используют наши классы сущностей. Кажется, я не могу найти способа в конструкторе сущностей или редакторе XML настроить имена столбцов базовой базы данных без того, чтобы это выдало мне ошибку.

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

Спасибо!

1 Ответ

2 голосов
/ 23 июля 2011

EDMX не зависит от базы данных.SSDL-часть EDMX тесно связана с сервером базы данных (в случае MSSQL даже с его версией).Вам нужен отдельный SSDL для каждого поддерживаемого сервера базы данных.

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

Изменение имен столбцов при первом использовании модели возможно только в том случае, если вы измените шаблон T4, используемый для создания SQL для создания базы данных.скрипт.Но каждый раз, когда вы создаете этот конструктор сценариев, он удаляет все описание вашего хранилища (SSDL) и сопоставление (MSL) и заменяет их новым.

Самый простой способ получить код, независимый от базы данных, - это сначала использовать код, но дажетогда у вас могут возникнуть проблемы с некоторыми типами и несовместимостью функций среди серверов.

Если вы хотите независимую от базы данных ORM, вам, вероятно, стоит проверить NHibernate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...