Ответ 1
Эта ошибка возникает, когда изменение, внесенное вами в свойство entity (в конструкторе таблиц), приведет к удалению и воссозданию таблицы сущностей в опубликованной базе данных, а таблица имеет в ней данные. Это именно то, как работает SQL Server, но не под управлением LightSwitch. Тем не менее, LightSwitch ошибается со стороны осторожности и не допускает операции, которые могут вызвать потенциальную потерю любых данных.
Типы событий, которые могут вызвать это:
- переименование свойства
- изменение его от требуемого до требуемого и т.д.
- изменение типа данных свойства
- & даже (если я правильно помню), меняя положение свойство в списке свойств
Однако вы можете добавить свойство в конец списка свойств, не вызывая отбрасывание и воссоздание таблицы.
На самом деле не рекомендуется делать слишком много изменений, прежде чем пытаться опубликовать приложение, точно по той причине, по которой вы предлагаете - в конечном итоге не зная, что вы сделали. Вы особенно хотите опубликовать после внесения каких-либо изменений в свойства объекта. Даже если вы просто опубликуете на локальном экземпляре SQL Server (включая SQL Express) на своей машине разработки, чтобы "проверить" свои изменения перед публикацией на производственный сервер.
То, как я обошел это (когда я использовал все еще для использования внутренних встроенных данных LS, ApplicationData - теперь я использую подключенные источники данных), нужно вручную внести изменения в столбец самой базы данных, используя что-то вроде SSMS (SQL Server Management Studio). Затем вы можете разрешить (потенциальную) потерю данных. Будьте очень осторожны, хотя , что вы измените, и убедитесь, что это только тот же, что и изменение, внесенное вами в свойство в LightSwitch. Конечно, создайте резервную копию базы данных, прежде чем вносить в нее какие-либо изменения. Если вы нарушите синхронизацию базы данных с LightSwitch, у вас возникнут серьезные проблемы.