如何与Xamarin.Forms一起使用MongoDB PCL(共享项目)
我是一个新的Xamarin开发人员,我现在正在研究需要数据库来存储应用程序数据的简单应用程序。如何与Xamarin.Forms一起使用MongoDB PCL(共享项目)
我的需求: 简单的应用程序,MVVM设计模式,一个发展。 应用程序需要在iOS和Android合作
我的解决方案结构:
Xamarin.Forms PCL项目(包含浏览,的ViewModels,模型,服务)
Xamarin.Droid - 默认的Xamarin Android项目。
Xamarin.IOS - 默认的Xamarin IOS项目。
我想使用NoSQL数据库。 我知道MongoDB,这是一个不错的。 但在Google中搜索后,没有任何教程可将MongoDB与Xamarin.Forms PCL项目结合使用。
所以,我的问题:
它可以使用MongoDB的具有Xamarin.forms? (如果(1)的答案是“是”) - 真的推荐MongoDB与Xamarin.Forms PCL项目一起使用吗?
(如果(2)的答案是“否”) - 在我的情况下,最好的NoSQL数据库选项是什么?
注意: 我已经尝试使用这篇文章: http://www.c-sharpcorner.com/UploadFile/093731/xamarin-with-mongodb/
但不工作。
我正在使用:Visual Studio 2017,Xamarin.Forms(2.3.4.247)。
感谢了很多!
Xamarin窗体PCL无关,同MongoDB.You做需要的服务来访问MongoDB的或任何其他分贝.Ideally你可以使用RESTful服务来访问数据库
你刚才提到的文章解释了如何通过Web API访问MongoDB(这是一个RESTful Web服务)。唯一需要担心的是Xamarin,如何在pcl中调用web api。再次根据您的文章,他们使用HttpWebRequest来访问Web api(您可以使用不同的客户端,例如httpclient,restsharp等来执行此操作)。
顺便说一下,您需要使用nuget(https://www.nuget.org/packages/MongoDB.Driver/)将Mongodb驱动程序添加到您的web api项目中。
似乎你没有正确安装驱动程序到web api项目。另外我不知道MongoCollection是一个自定义模型类,它们是为了保持数据库实例而创建的。
如果您正在寻找NoSQL 离线与Xamarin PCL一起使用的数据库,您可以通过使用LINQ的模型和查询来访问该数据库。
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
//
要使用MongoDB的直接,你需要创建您发布数据的API与REST
你是什么意思与“不工作” ?如果您已经尝试了一些代码,最好分享错误消息并对其进行处理。 –
好的路易斯,在上面的文章中,添加MongoHelper类后,我得到了这个错误: https://image.ibb.co/j6514v/Untitled.jpg 而我没有找到任何解决此问题。 感谢您的帮助。 ****当然,我添加了参考:https://image.ibb.co/jvzHcF/Untitled2.jpg –
我想你忘了在类的顶部添加“using”关键字的命名空间。 –