Lỗi này xảy ra khi thay đổi bạn đã thực hiện cho thuộc tính của một thực thể (trong trình thiết kế bảng) sẽ khiến bảng của thực thể trong cơ sở dữ liệu đã xuất bản bị xóa & được tái tạo và bảng có dữ liệu trong đó. Đây chỉ là cách mà SQL Server hoạt động, nó không nằm dưới sự kiểm soát của LightSwitch. Tuy nhiên, LightSwitch sai về mặt thận trọng, & không cho phép một hoạt động có thể gây mất khả năng mất dữ liệu.
Các loại điều mà có thể kích hoạt này là:
- đổi tên một tài sản
- thay đổi nó từ cần-không cần vv
- thay đổi một tài sản dữ liệu loại
- & thậm chí (nếu tôi nhớ cor tiếp xảy ra) thay đổi vị trí của một tài sản trong danh sách tài sản
Bạn tuy nhiên thể, thêm một thuộc tính vào cuối danh sách tài sản, mà không kích hoạt bảng được giảm & tái tạo. Thực sự không phải là một ý tưởng hay khi thực hiện quá nhiều thay đổi trước khi cố gắng xuất bản ứng dụng, vì lý do chính xác mà bạn đề xuất - kết thúc là không biết bạn đã làm gì. Bạn đặc biệt muốn xuất bản sau khi thực hiện bất kỳ thay đổi nào đối với các thuộc tính của một thực thể. Ngay cả khi bạn chỉ xuất bản cho một cá thể SQL Server cục bộ (bao gồm cả SQL Express) trên máy phát triển của bạn, để "thử nghiệm" các thay đổi của bạn trước khi bạn xuất bản lên máy chủ sản xuất.
Cách mà tôi đã nhận được (khi tôi vẫn sử dụng để sử dụng dữ liệu nội tại của LS, ApplicationData - Bây giờ tôi sử dụng nguồn dữ liệu đính kèm) là tự thực hiện thay đổi cho cột trong cơ sở dữ liệu như SSMS (SQL Server Management Studio). Sau đó, bạn có thể quyết định cho phép mất dữ liệu (tiềm năng). Hãy cẩn thận mặc dù những gì bạn thay đổi, & đảm bảo chỉ có cùng một là thay đổi bạn đã thực hiện cho thuộc tính trong LightSwitch. Tất nhiên sao lưu cơ sở dữ liệu trước khi thực hiện bất kỳ thay đổi nào đối với nó. Nếu bạn khiến cơ sở dữ liệu không đồng bộ với LightSwitch, bạn sẽ gặp phải các vấn đề lớn.
Nguồn
2013-02-09 15:55:15
Xin chào Yann, Bạn có nói rằng không có cách nào để theo dõi nguồn của lỗi đối với thuộc tính đang gây ra lỗi đó? – Mark
Không phải là tôi biết, không. Đó là lý do tại sao tôi nói luôn xuất bản ngay sau khi thực hiện bất kỳ thay đổi nào đối với thuộc tính. Nếu dữ liệu của bạn không quan trọng, bạn có thể xóa cơ sở dữ liệu và nó sẽ được tạo lại khi bạn xuất bản lần sau. Nếu dữ liệu của bạn quan trọng, bạn có thể phải tự kiểm tra các bảng LightSwitch của bạn dựa vào các bảng trong cơ sở dữ liệu. –
Xin chào Yann, Dữ liệu quan trọng. Tôi không có khả năng là tôi sẽ có thể tìm thấy vấn đề bằng cách kiểm tra các bảng Lightswitch đối với cơ sở dữ liệu. Tuy nhiên, tôi có thể khôi phục cơ sở dữ liệu từ bản sao lưu trước các thay đổi gây xúc phạm. Tôi có thể làm điều đó và xóa các bảng mới trong Lightswitch mà SQL thấy có tính xúc phạm không? – Mark