用于 Mono、MonoTouch 和 ASP.NET MVC 的 ORM

Posted

技术标签:

【中文标题】用于 Mono、MonoTouch 和 ASP.NET MVC 的 ORM【英文标题】:ORM for Mono, MonoTouch and ASP.NET MVC 【发布时间】:2011-05-24 00:30:05 【问题描述】:

我正在计划一个应用程序,它将在 ASP.NET MVC Web 应用程序、WinForms 应用程序和 MonoTouch iPad 应用程序之间重用实体。

我考虑过使用 (Fluent) NHibernate 作为 ORM,但我担心如果我设计我的实体以在 WinForms 上使用,当我创建 iPad 应用程序时,我将不得不复制实体,并将它们重新映射到 SQLLite在 iPad 上(MonoTouch 上没有 NHibernate)。

有没有我可以逃脱的 ORM:

    使用相同的实体(如果实体是根据 Fluent NHibernate 从映射中抽象出来的,这应该是可能的) 使用相同的映射(这可能更难实现且不那么重要

提前致谢。

【问题讨论】:

您的实体只是 POCO,因此您无需复制它们。您可以使用在 Mono 上工作的 NH,然后为 MonoTouch 编写存储库的缩减版本,我怀疑您是否需要为 MonoTouch 实现一切,正是您需要的。国际奥委会 FTW。 我同意 - POCO 将是相同的。我试图摆脱使用 2 个 ORM,因此必须分别映射每个项目上的对象。唉,这似乎并不容易,而且绘制和测试所需的时间可能比手工完成要少。 【参考方案1】:

我正在使用 ViciProject CoolStorage,它非常棒。推荐!

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

【讨论】:

这看起来不错 - 虽然我不确定我是否也会在服务器端使用它。谢谢,看起来像是 MT 方面的赢家 :) 我们也在服务器端使用它,用 .NET 4.0 编写并部署为集群中的 IIS 服务,效果很好。这个 API 的简单性对我们来说是正确的,并且大大加快了开发速度。

以上是关于用于 Mono、MonoTouch 和 ASP.NET MVC 的 ORM的主要内容,如果未能解决你的问题,请参考以下文章

MonoDroid 和 MonoTouch 的共享库

Mono 和 iOS 6 构建错误 MT0000

Monotouch iPhone 项目未出现在 MonoDevelop 中

带有 Monotouch 的 UITextField ResignFirstResponder 示例

MonoTouch 的安全性如何?

如何在 MonoTouch / MonoDevelop / UIBuilder 中插入插座?