13

EntityFramework có sẵn cho Windows 8 Store Apps không?EntityFramework có sẵn cho Windows 8 Store Apps không?

Tôi đang sử dụng Visual Studio 2012 Express cho Windows 8. Tôi bắt đầu tự hỏi vì tôi không thể làm cho nó hoạt động.

Tôi đã cài đặt gói Entity Framework từ NuGet tôi thêm System.Data.Entity và System.Data.Design cho dự án

Nhưng không có vấn đề gì tôi làm, DbContext không được công nhận ...

Bất kỳ ý tưởng nào?

CHỈNH SỬA:

EntityFramework không khả dụng cho Windows Store Apps. Tôi không hiểu vị trí của Microsoft về điều này, họ hút.

Giải pháp khác là sử dụng SQLite nhưng không phải là ORM. Vậy vấn đề là gì?

+0

EntityFramework không khả dụng cho Windows 8 Store Apps. Bạn có thể sử dụng SQLite: http://timheuer.com/blog/archive/2012/08/07/updated-how-to-using-sqlite-from-windows-store-apps.aspx –

+0

SQLite không phải là ORM, là nó? –

+0

@AntoineGamond không có nó, nhưng tôi nghĩ rằng có một số dự án hệ điều hành có thể giúp với điều đó. –

Trả lời

8

Theo như tôi biết, Windows 8 Store Apps nhắm mục tiêu WinRT (Windows Runtime).

Vì lý do đó, vì WinRT có thể được nhắm mục tiêu bằng C# và có rất nhiều lớp từ .NET Framework có khớp trong WinRT, hầu hết các cơ sở mã có sẵn không sử dụng thư viện rất cụ thể cũng có thể hoạt động trên Windows 8 Store Ứng dụng.

Có rất nhiều thứ không khả dụng trong WinRT. Ví dụ, Entity Framework được xây dựng trên đầu trang của ADO.NET và điều này không có sẵn trên WinRT.

Visual Studio là đủ thông minh để ẩn các lớp và thành phần không có sẵn trên WinRT và đây là lý do tại sao các lớp liên quan đến Entity Framework không thể được sử dụng trong dự án Windows 8 Store App của bạn.

Để sử dụng Khuôn khổ thực thể, bạn sẽ cần tạo một API Web RESTful (ví dụ sử dụng ASP.NET Web API) và truy cập lớp dữ liệu không đồng bộ trên dây.

Nếu không, bạn sẽ cần sử dụng bộ nhớ cơ sở dữ liệu cục bộ như SQLite hoặc XML.

+2

Nói cách khác, Microsoft rất tiếc. Ứng dụng cần làm việc ở chế độ ngoại tuyến. Tôi nghĩ đó là trường hợp của hầu hết các ứng dụng. Và SQLite không phải là ORM ... –

+1

@AntonieGamond Theo quan điểm của tôi, Microsoft đã hạ cấp phát triển ứng dụng Windows 8 như thể đó là phát triển di động. Tôi có nghĩa là một máy tính bảng hoặc máy tính xách tay, hoặc thậm chí một máy tính để bàn, không có những hạn chế của phát triển di động. Hoặc bạn có thể cho rằng Microsoft muốn mọi thiết bị được kết nối với internet và buộc mọi người sử dụng đám mây (ví dụ: Azure). Là một lý do tốt, phải không? ;) –

+0

@AntoineGamond Tôi không chắc chắn về điều này, nhưng bạn có thể thử * Dapper *, mini-OR/M sau StackExchange. Có lẽ nó phù hợp với nhu cầu của bạn (hoặc ai biết). –

2

Khuôn khổ thực thể không khả dụng cho ứng dụng cửa hàng Windows 8. Điều này là do thực tế là các cửa sổ ứng dụng lưu trữ chạy trong một sandbox và sẽ không thể sử dụng cơ sở dữ liệu bình thường. Bạn có thể sử dụng SQLite cho điều này hoặc có XML/JSon làm nguồn mà bạn có thể triển khai trong IsolatedStorage của ứng dụng khi bắt đầu ứng dụng đầu tiên.

+1

_run trong sandbox_ dường như không giải thích đầy đủ ... Phần nào của EF sẽ không an toàn? –

+1

Trên iOS, ứng dụng cũng được hộp cát, nhưng điều đó không có nghĩa là chúng tôi không thể có cơ sở dữ liệu trong hộp cát. Tôi không hiểu cách tiếp cận chính thức của Microsoft cho việc này là gì? Họ xây dựng một khuôn khổ tuyệt vời nhưng nó không tương thích với các ứng dụng Windows 8? –

+1

Có thể một lý lẽ chính là phần lớn Windows Store App hoạt động trên Windows RT thay vì Win32/.NET thông thường, có nghĩa là rất nhiều cơ sở mã sẽ không hoạt động trên các ứng dụng Windows 8 Modern UI. –

2

Không có tính năng này. Bạn có thể sử dụng SQLite, điều này HowTo là rất hữu ích cho tôi. Hoạt động tuyệt vời!

+1

SQLite không phải là ORM. Chúng tôi đang trong năm 2013 ... Bạn có biết LinqConnect? http://www.devart.com/linqconnect/ –

+0

không, tôi không biết điều đó. cảm ơn bạn đã chia sẻ – Joel

1

Để lưu nội dung: Câu trả lời là không và xoay vòng là tạo dịch vụ web hoặc sử dụng dịch vụ đám mây. SqlLite là tốt cho các cửa hàng địa phương (người dùng duy nhất) thông tin nhưng không có gì nhiều hơn nữa.

Về vấn đề này, không phải tất cả, nhưng hầu hết các kết nối đến cơ sở dữ liệu được thực hiện thông qua kết nối ổ cắm. Vì vậy, nó có thể kết nối với một số cơ sở dữ liệu và vẫn giữ ứng dụng trong một sandbox. Tuy nhiên, ý định của MS là rõ ràng: đám mây hoặc bức tượng bán thân. Vì vậy, MS đang nói rằng tốt nhất của nó để kết nối với một dịch vụ web (một kết nối ổ cắm) rằng nó không hiệu quả (và nguy hiểm) thay vì sử dụng một kết nối trực tiếp.

Ứng dụng Cửa hàng Windows đơn giản là kém hơn.

Và để thêm xúc phạm về thương tích, MS muốn cắt giảm thu nhập từ phần mềm của chúng tôi.

Tôi thực sự đã cố gắng thích WinRT (nay là UWP) nhưng không thể thực hiện được. Và trong 3 năm này, mọi thứ không thay đổi chút nào.

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