Xamarin使用Dapper(或其他NuGet包)Android

问题描述:

我目前正在为FieldService应用程序开发一个Xamarin.Android项目。我研究了数据访问层的标准Xamarin SQLite.NET组件,但它不符合我的需求。 (例如,我不能创建具有多个字段的PK)。Xamarin使用Dapper(或其他NuGet包)Android

我试图使用Dapper框架,因为我有更多的经验,我觉得它非常棒。

无法让它与Xamarin.Android一起使用。我在Visual Studio 2013中使用了Xamarin。任何人都知道如何做到这一点?

我试过3种方式:

  1. 添加小巧玲珑的Xamarin.Android类库。 - 没有错误,但Dapper不在解决方案资源管理器中的References组下,我无法使用名称空间Dapper

  2. 将Dapper添加到“常规”.net类库。 - 一切正常,我能够添加它,我可以使用Dapper命名空间和Query方法等,但是有一个错误引用Xamarin.Android主应用程序项目的项目。 (不同的目标框架)

  3. 将Dapper添加到面向.NET Framework 4.5和Xamarin.Android的可移植类库。 - 添加NuGet包时出错。

简要问题:如何将Dapper(或其他NuGet包)添加到Xamarin.Android?
在此先感谢。

+0

您应该在发布问题时提供详细信息。 – thumbmunkeys 2014-10-27 09:44:48

短小精悍的NuGet包中包含靶组件:

  1. .NET 3.5
  2. .NET 4.0
  3. .NET 4.5

所以,你将无法在NuGet包与Xamarin Android项目,因为这个项目将针对MonoAndroid。

如果可能的话,需要针对MonoAndroid目标框架重新编译Dapper。否则,你需要看看其他的选择。

看着Dapper GitHub站点NuGet包中的所有可用类都来自一个SqlMapper.cs file,它似乎在Android项目中编译。

+0

感谢您的回答!欣赏它。通过关于SqlMapper.cs的事情,你的意思是我可以下载.cs文件并手动将其包含在我的项目中?我想唯一的缺点是我不会得到自动更新通知。也许这是一个很好的做法。如果我认为它符合我的需求,我会研究它并接受您的答案。再次感谢。 – avb 2014-10-27 12:23:47

+0

是下载文件并将其添加到您的项目。理想情况下,Dapper NuGet包的所有者可以针对MonoAndroid构建它,并将程序集包含在NuGet包中。 – 2014-10-27 12:36:58

+0

安装NuGet包并手动引用下载的.dll也一样,但是我最终使用了你的方法,并将'SqlMapper.cs'文件包含到我的项目中。谢谢! – avb 2014-10-27 14:19:55