Схема динамических данных для динамических данных ASP.NET
Я прочитал руководства по динамическим данным ASP.NET, и все они требуют, чтобы вы создали статический контекст данных.
То есть вы должны сгенерировать модель данных, используя Entity Framework или Linq to SQL, и если схема для этой модели когда-либо изменится, вам нужно перейти в Visual Studio и изменить модель соответствующим образом.
Я ищу решение, которое будет обрабатывать изменения в схеме (например, новая таблица или новый столбец) без необходимости перестраивать в Visual Studio.
Возможно ли это с помощью динамических данных ASP.NET?
1 ответ
Не совсем, ваш выбор: Entity Framework или Linq to SQL. Оба генерируют группу классов со свойствами и атрибутами getter и setter, которые детализируют метаданные, это делается автоматически, когда вы перетаскиваете таблицы базы данных в контекст данных.
Я не думаю, что есть третий вариант, и даже если бы вы могли его кодировать, "конечно, это не было бы тривиально, переделка контекста данных после изменения базы данных была бы проще и заняла бы меньше времени в целом".
Хотя я ценю, что таблицы и столбцы базы данных меняются, конечно, частые изменения в базе данных нарушают обслуживание конечных пользователей?
Единственный обходной путь - запуск SqlMetal http://msdn.microsoft.com/en-us/library/bb386987%28v=vs.110%29.aspx каким-либо автоматическим способом, например запланированной задачей, выполняющей сценарий PowerShell или пакетный файл. Однако это потребует повторной компиляции и повторного развертывания, что также будет прерывать конечных пользователей, если это не будет сделано, когда никто не использует его.
Кроме того, это даст вам только базовые экраны "Новый", "Просмотр", "Редактировать" - не представляйте, как они могут быть полезны для чего-либо, кроме действительно быстрого и грязного приложения.
Было бы здорово, если бы динамические данные могли делать то, что вы просите.
Вы можете использовать SqlMetal.exe из командной строки для генерации классов, я думаю, Visual Studio делает это негласно.