2013-02-11 21 views
5

Tôi gặp sự cố khi kết nối với cơ sở dữ liệu sqlite từ Windows Runtime Component để chạy các tác vụ nền .. Tôi bao gồm tất cả các dll theo cùng một cách tôi gia tăng đối với các dự án chính .. Nhưng nó không hoạt động .. Hiển thị khoảng 200 lỗi .. tôi đi theo bài này: https://github.com/praeclarum/sqlite-net/issues/104
Nhưng tôi vẫn nhận được lỗi .. 2 lỗi đó là:Cách kết nối với cơ sở dữ liệu sqlite từ Windows Runtime Component để chạy các tác vụ nền

Lỗi 2 SQLite.SQLiteException của lớp Windows Runtime có loại cơ sở không hợp lệ 'System.Exception'. Không cho phép xuất loại ngoại lệ tùy chỉnh. D: \ MCM-22-Jan-2013 \ CCM \ TileBackground \ SQLite.cs 46 15 TileBackground

Lỗi 92 Loại 'SQLite.TableMapping.Column' là một kiểu lồng nhau. Không thể xuất các loại lồng nhau vào Windows Runtime. D: \ MCM-22-Jan-2013 \ CCM \ TileBackground \ SQLite.cs 1390 16 TileBackground

Trả lời

-1

Tôi đang sử dụng Sqlite trong tác vụ nền thành công. Tôi có các tệp nguồn sqlite-net trong một dll Windows Store thông thường. Cả hai ứng dụng chính của tôi và các dự án tác vụ nền của tôi cần truy cập vào cùng một db sqlite, vì vậy chúng đều tham chiếu đến dll này.

Dường như bằng cách cấu trúc mã nguồn theo cách này, rằng tôi (vô tình) đã tránh được vấn đề bạn đang gặp phải. Lưu ý rằng tôi không phải tinh chỉnh các tệp nguồn Sqlite-net để làm việc xung quanh vấn đề.

4

Tôi gặp sự cố này hôm nay và với sự trợ giúp của https://github.com/praeclarum/sqlite-net/issues/104 Tôi có thể giải quyết vấn đề. Về cơ bản bạn có 2 việc cần làm sau khi sqlite-net của nuget được thiết lập.

  1. Bạn cần phải thay đổi tất cả public của định nghĩa lớp (cột 5) để internal, cho SQLite.cs và SQLiteAsync.cs
  2. Bạn cần thay đổi namespace SQLite để bất cứ điều gì không gian tên dự án # C của bạn đang sử dụng.

Bằng cách này, trình bao bọc này trở thành một phần của thành phần C#/thành phần Windows Runtime của bạn và nó không được xuất.

Các vấn đề liên quan