2016-05-11 4 views
0

私は自分のデータベースにEntity Frameworkを使用しています。すべてのエンティティは、DbGeography(System.Data.Entity.Spatial)プロパティを持つオブジェクトがあるため、Entity Frameworkを参照しているプロジェクトに格納されます。 System.Configuration DLL(Entity Framework参照から取得)がMonoに存在しないため、Xamarinプロジェクトでこのプロジェクトを参照することはできません。DbGeography in Xamarin

XamarinでDbGeographyプロパティを使用することはできますか?

背景情報を編集します。 私は、データベースに格納されているクラスのみを含むモデルプロジェクトを持っています。一部のクラスにDbGeographyプロパティがあるため、このプロジェクトはEntity Frameworkを参照します。もう1つのプロジェクトはデータベースを処理し、コンテキストなどを作成してモデルをデータベースロジックから分離します。この構造は多くのプロジェクトで使用されており、Webサービスを介してデータベースにアクセスします。プロジェクトの1つがXamarinアプリです。このアプリはモデルプロジェクトのいくつかのクラスを使用する必要があります。しかし、これはEntity Frameworkリファレンスのため不可能です。私は、アプリケーションでEntity Frameworkを使用したくありません。

+0

(私が間違っていれば誰かが私を修正します:)私はEntity FrameworkはXamarin上で実行してください。フレームワークは単にXamarinをサポートしていないからです。おそらくあなたが望むのは、SQLiteのラインに沿ったものです。あなたが実際に成し遂げようとしていることについてもう少し詳しい情報を提供すれば、おそらくより適切な選択肢を提案することができますか? – Falgantil

+0

返信いただきありがとうございます!私はXamarinでエンティティフレームワークを実行したくありませんが、DbGeographyプロパティでいくつかのクラスを使用したいと思います。私はその質問にさらに情報を加えました。 – jasdefer

答えて

0

あなたが達成しようとしていることを明確にした後、あなたの問題に(おそらく)最良の解決策があります。

モデルを自分で作成した場合は、Shared/PCLライブラリに展開して両方のプロジェクトで参照してください。しかし、Entity Frameworkライブラリにあるモデルを使用しているので、代わりにそれを行うことはできません:

DbGeographyクラスと同様のプロパティを含む同じモデルをXamarin-endで作成する必要があります。そのようにして、REST(または使用している通信)を介して受け取った場合は、カスタムタイプに変換してください。

JSONは元のオブジェクトタイプについての情報を保持していないので(デフォルトでは、実際にそれを行うように設定できますが、この場合は避けたいと思っています)、あなたの「Xamarinと互換性のあるDbGeographyのクローン」クラスに直接オブジェクトを挿入します。

私はあなたがJSONとしてデータを転送する通信方法を使用していると仮定しています。しかし、それはXMLや同様のシリアライゼーション技術にも有効です。しかし、そうでない場合は、実際にデータベースとXamarinアプリケーションの間のオブジェクトをどのように取得しているのかを指定してください。

+0

この回答ありがとうございます。私は実際にモデルがコピーされることを避けたい、それは時々変化するからです。これが私にXamarinに切り替える1つの理由でした。私は、関連するクラスのビューを作成することも考えました。これは、手動でコピーすることを避けるために設計されています。しかし、Entity Frameworkを参照せずにこれらのDbGeographyプロパティを使用する可能性はありませんか? – jasdefer

+0

あなたは実際にすべてのプロパティを必要としていますか?実際に使用しているプロパティのみを実装することができます。残りはJSONからマッピングするときに無視されます。そうすれば、サーバーの変更に対して一定以上のセキュリティを確保できます。 – Falgantil