Как запретить Entity Designer писать сценарии в алфавитном порядке? - PullRequest
0 голосов
/ 09 апреля 2011

Я создал 3 таблицы в SQL Designer -

Community { ID, Name, Description }
Audience { ID, Type, Value}
Community_Audience { CommunityID, AudienceID }

Я импортировал эту схему в дизайнер EDMX в Visual Studio 2010, щелкнул правой кнопкой мыши в конструкторе и выбрал «Создать базу данных из модели», чтобы выполнить сценарий.схема.Когда я смотрю на сгенерированный скрипт, он пишет его так:

Community { ID, Name, Description } -- Column names not sorted alphabetically.
Audience { ID, Type, Value} -- Column names not sorted alphabetically.
Community_Audience { AudienceID, CommunityID } -- Column names sorted alphabetically. CommunityID is after AudienceID. 

Это приводит к сбою моих скриптов заполнения данных, поскольку я не указываю имена столбцов - INSERT INTO Community_Audience {'guid',' guid '}

Я понимаю, что могу обновить свои сценарии заполнения данных, включив в них имена столбцов или перестроить базовый XML-файл в файле EDMX, но я не хочу идти по этому пути, так как яочищать сущности (таблицы) в edmx и слишком часто импортировать свежую схему из базы данных.Мне было интересно, если есть настройка, которая не позволит конструктору сортировать по алфавиту.Как ни странно, это происходит только с таблицами перекрестных ссылок (например, Community_Audience), а не с первичными (например, в данном случае с Community и Audience).

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 09 апреля 2011

Вы описали оба варианта - либо измените операторы INSERT, которые не должны быть такими сложными, и вам придется сделать это только один раз, либо попытайтесь изменить EDMX (плохой способ, если вы используете обновление модели из базы данных).Дизайнер сущностей действительно не имеет функции для определения порядка в столбцах.Генерация сценария базы данных осуществляется отдельным компонентом.Он основан на Windows Workflow Foundation 4 и может быть заменен вашим собственным рабочим процессом, но это большая работа без какой-либо реальной причины.Решением является изменение операторов INSERT.

Я не понимаю, почему вы используете одновременно Генерирование базы данных из модели, а также обновление модели из базы данных.

...