0

Visual Studioはヘッドレス webserviceを作成するために使用する"Background Application (IoT)" templateを提供します。いくつかのデータを保持するために、私はEntity Framework with SQLiteをDB-Engineとして使いたいと思っています。IoTバックグラウンドアプリケーションを使用するEntity Framework

UWPを5.2.2にアップグレードし、SqliteとEFCore.ToolsをインストールしてDbContextを追加した後、私は最初のバージョンを移行したかったのです。それは失敗します。

PM>アドオンの移行MyFirstMigration

プロジェクト 'BackgroundApplication4' Windowsランタイムコンポーネントです。 Entity Frameworkコアパッケージマネージャコンソールツールは、このタイプのプロジェクトをサポートしていません。

私は簡単な「空白のアプリケーション」で私のために働いたので、それはEF自体では問題ではないと思います。今、いくつかの質問が出ています。「バックグラウンドアプリケーション」は実際にはWinRTコンポーネントで、EFでは別の(サポートされていない)処理がありますか?

私はUWPがextension of WinRTだと思ったので、基本的に各UWP-AppはWinRT-Componentでなければなりませんか?

答えて

1

WindowsランタイムコンポーネントのEFは、動作しません。 WinRTコンポーネントはクラスライブラリに依存することができるのでそれほど悪くはありません。したがって、すべてのEFクラスを独自のクラスのlibaryに移動し、Windowsランタイムコンポーネントのバックグラウンドタスクからそのライブラリを使用します。

これにより、必要に応じてフォアグラウンドアプリでも同じクラスライブラリを使用することができます。

p.s. EFCoreとUWPのgithubページを確認してください。特に.netネイティブとの組み合わせでは、多くの問題があります。 UWPでEF.coreを使用すると頭痛が増えます。それは可能です。

+0

私はあなたの提案を試みました:私の背景のアプリの横に私は(ユニバーサル)クラスライブラリを作成しました。 PM>マイグレーションの追加MyFirstMigration スタートアッププロジェクト 'LedManager'は、Windowsランタイムコンポーネントです。 Entity Frameworkコアパッケージマネージャコンソールツールは、このタイプのプロジェクトをサポートしていません。 – TimBoss

+1

普通のアプリプロジェクトを作成して、クラスライブラリでマイグレーションを生成するだけですか? –

+0

ちょうどこの瞬間に私はこれを試しました: https://github.com/aspnet/EntityFramework/issues/6098 (あなたがちょうど言ったこと)それは私のために働いた。このソリューションには3つのプロジェクトが含まれています.1つはダミーUWP-App、1つは永続性用のクラスライブラリ、もう1つはバックグラウンドアプリプロジェクトです。 – TimBoss

関連する問題