2011-05-24 153 views
2

我正计划一个应用程序,它将在ASP.NET MVC Web应用程序,WinForms应用程序和MonoTouch iPad应用程序之间重用实体。我认为使用(流利)NHibernate作为ORM,但我担心,如果我设计我的实体用于WinForms,当我创建iPad应用程序时,我将不得不复制实体,并重新映射它们为iPad上的SQLLite(MonoTouch上没有NHibernate)。用于Mono,MonoTouch和ASP.NET MVC的ORM

是否有一个ORM在那里我可以逃脱:

  1. 使用相同的实体(这应该是可能的,如果实体从映射按功能NHibernate抽象)
  2. 使用相同的映射(这可能是难以实现,而不是提前为重要

感谢。

+1

您的实体只是POCO,所以您不需要复制它们。您可以使用适用于Mono的NH,然后为MonoTouch编写一个裁剪版本的存储库,我怀疑您需要为MonoTouch实现所需的所有内容。 IoC FTW。 – Phill 2011-05-25 11:41:57

+0

我同意 - POCO的将是相同的。我试图摆脱使用2个ORM,因此不得不分别映射每个项目上的对象。唉,看起来这并不容易,而且可能需要更少的时间进行映射和测试,而不是手动完成。 – Darbio 2011-05-25 12:08:14

回答

4

我使用ViciProject CoolStorage,它是Br illiant。推荐的!

http://viciproject.com/wiki/projects/coolstorage/home

+0

这看起来不错 - 虽然我不确定我是否也会在服务器端使用它。谢谢,看起来像MT方面的赢家:) – Darbio 2011-05-25 12:09:58

+0

我们也在服务器端使用它,用.NET 4.0编写,并作为群集中的IIS服务进行部署,效果很好。这个API的简单性对我们来说是正确的,并加快了开发速度。 – 2011-05-26 17:25:04