Entity Framework 4 View Generation - Вопрос о встраивании файлов и что насчет Source Control (TFS) - PullRequest
0 голосов
/ 24 января 2011

Я предварительно генерирую представления для проекта класса с edmx Entity Framework 4, который используется приложением asp.net.

Ресурсы, которые я использовал в качестве ссылки:

http://blog.willbeattie.net/2010/04/pre-generating-views-in-entity.html и http://msdn.microsoft.com/en-us/library/bb896240.aspx

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

Но это заставляет меня задуматься, поскольку эти файлы создаются при сборке ипосле копирования, не будет ли сборка всегда содержать последнюю версию файлов csdl / msl / ssdl?Поскольку эти файлы создаются при сборке и помечаются в проекте для встраивания, может показаться, что файлы, встроенные в сборку, являются файлами, ранее созданными в предыдущей сборке.

Суть моей проблемы касается контроля версий.Если я включаю файлы csdl / msl / ssdl в систему управления версиями каждый раз, когда проект закрывается, он не будет собираться, поскольку эти файлы будут помечены как доступные только для чтения, а Visual Studio выдаст ошибку, когда процесс после сборки попытается скопировать вновь сгенерированныйфайлы над файлами, выведенными из системы контроля версий, которые помечены как доступные только для чтения.В связи с тем, что эти файлы необходимы для сборки проекта, но не генерируются до тех пор, пока проект не будет собран, в настоящее время я не вижу, как я могу успешно не проверять файлы csdl / msl / ssdl в управлении исходным кодом, сохраняя только ссылку на нихв файле проекта есть.Это работает для файла Views.cs, который создается при предварительной сборке, но не для файлов csdl / msl / ssdl, которые копируются при посткомпиляции.

Ответы [ 2 ]

2 голосов
/ 02 июня 2011

Я создаю свой * .views.cs через шаблон t4, который я нашел на MSDN .

Это сводит на нет все события до / после сборки и упрощает процесс.Также нет проблем с контролем версий.Файл tt полностью универсален и может быть повторно использован для любого edmx, просто переименовав его.

Надеюсь, это поможет ...

0 голосов
/ 25 января 2011

не будет ли сборка всегда содержать последнюю версию файлов csdl / msl / ssdl?

Это зависит от вашего порядка сборки.

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

Другим исправлением будет использование редактора ресурсов для перезаписи сохраненных файлов после сборки.

Не уверен, как исправить исходный контроль;мы используем неблокирующее управление исходным кодом, что делает это без проблем.

...