2017-08-08 21 views
0

私はXamarinの新しい開発者です。私は現在、アプリケーションデータを格納するデータベースが必要な単純なアプリケーションに取り組んでいます。Xamarin.FormsでMongoDBを使用する方法PCL(共有プロジェクト)

私のニーズ: 単純なアプリケーション、MVVMデザインパターン、1つの開発。 アプリケーション私のソリューション構造

IOSとAndroidで作業する必要があります。

  1. Xamarin.Forms PCLプロジェクト(ビュー、のviewmodels、モデル、サービスを含む)

  2. Xamarin.Droid - デフォルトのXamarin Androidプロジェクト。

  3. Xamarin.IOS - デフォルトのXamarin IOSプロジェクト。

私はのNoSQLデータベースを使用します。 私はMongoDBについて知っています、それは素晴らしいものです。 Googleで検索した後、Xamarin.Forms PCLプロジェクトでMongoDBを使用するためのチュートリアルはありません。

だから、私の質問:

  1. Xamarin.formsでのMongoDBを使用することは可能でしょうか?

  2. ((1)の答えが "はい"の場合) - MongoDBはXamarin.Forms PCLプロジェクトで使用することをお勧めしますか?

  3. ((2)の答えが「いいえ」の場合) - 私の場合、NoSQLデータベースの最適なオプションは何ですか?

注意: http://www.c-sharpcorner.com/UploadFile/093731/xamarin-with-mongodb/

しかし、働いていない: 私はすでにこの記事を使用しようとしたのです。

私は、ビジュアルスタジオ2017、Xamarin.Forms(2.3.4.247)を使用しています。

ありがとうございました!

+0

であなたがにデータを投稿するAPIを作成する必要がありますMongoDBのを使用するには?既にいくつかのコードを試している場合は、エラーメッセージを共有して作業する方がよいでしょう。 –

+0

OK Luis上記の記事で、MongoHelperクラスを追加した後、私はこのエラーを受け取りました: https://image.ibb.co/j6514v/Untitled.jpg そしてこの問題の解決策は見つかりませんでした。 ご協力いただきありがとうございます。 ****もちろん、私は参照を追加しました:https://image.ibb.co/jvzHcF/Untitled2.jpg –

+0

あなたのクラスの先頭に "using"キーワードで名前空間を追加するのを忘れたと思います。 –

答えて

3

Xamarinは、PCLがどのようにMongoDB.YouでMongoDBのか、データベース

あなたが言及している記事にアクセスするためのRESTfulなサービスを使用することができ.Ideallyデシベル他にアクセスするためのサービスを必要とは何の関係も説明がありませんフォームWeb API(RESTful Webサービス)を介してMongoDBにアクセスします。 Xamarinについて心配する必要があるのは、pclでWeb APIを呼び出す方法だけです。再びあなたの記事に基づいて、HttpWebRequestを使用してWeb APIにアクセスします(これを行うには、httpclient、restsharpなどの異なるクライアントを使用できます)。

ところで、Nuget(https://www.nuget.org/packages/MongoDB.Driver/)を使ってMongodbドライバをWeb APIプロジェクトに追加する必要があります。

web apiプロジェクトにドライバを正しくインストールしていないようです。また、MongoCollectionはdbインスタンスを保持するために作成したカスタムモデルクラスです。

3

NoSQLをお探しの場合オフライン LINQを使用してモデルとクエリを使用してアクセスできるXamarin PCLで動作するデータベース。

Realmは、あなたが探して何が考えられます。

public class Dog : RealmObject { 
    public string name {get;set;} 
    public Human Owner {get;set} 
} 

public class Human : RealmObject { 
    public IList<Dog> dogs {get;} 
    public string FirstName {get;set;} 
} 

Realm realm = Realm.GetInstance(); 
Human man = new Human(); 
man.Firstname = "Matan"; 

Dog dog = new Dog(); 
dog.name = "Jimmy"; 
man.dogs.Add(dog); 

using (var trans = realm.BeginWrite()){ 
    realm.Add(man): 
    trans.Commit(); 
} 

var people = realm.All<Human>(); 

foreach(var person : people){ 
    Debug.WriteLine(person.FirstName); 
    Debug.WriteLine(person.dogs[0].name); 
} 

// [Output] 
// Matan 
// 

直接あなたが「いいえ作業」とはどういう意味ですかREST

関連する問題