Windows 7 手机的 ORM 映射器
Posted
技术标签:
【中文标题】Windows 7 手机的 ORM 映射器【英文标题】:ORM mapper for windows 7 phone 【发布时间】:2010-09-07 12:04:26 【问题描述】:我正在考虑使用带有 win7 手机的 SQLite 来开发我的应用程序。我正在寻找一个适用于 Windows 7 手机和 SQLite 的 ORM 映射器。
【问题讨论】:
【参考方案1】:到目前为止,我发现以下支持 WP7 的 ORM:
Vici CoolStorage 已经提到OpenNETCF.ORM Framework Mono.Data.Sqlite.Orm希望它对某人有所帮助。
【讨论】:
【参考方案2】:我为 Compact Framework 创建了一个lightweight, extensible ORM。虽然我的参考实现使用了 SQL Compact,但我知道一位开发人员通过简单地将 SQL Compact 版本作为模板,在不到一天的时间内就在 WinPhone 上使用了 SQLite。我一直想自己做那个移植,我只是没有找到时间。
在这一点上可能值得注意的是,他也放弃了它,因为 SQLite(不是 ORM 框架)非常非常慢。
【讨论】:
afaik,Windows Phone 7 应用程序不能在 Compact Framework 上运行,它们是使用 Silverlight 或 XNA 开发的。 Windows Pnone 的 XNA 和 SL 框架在 Compact Framework 之上运行。它使用 3.7 IIRC 版本,该版本未在 Phone 之外发布,但仍可以使用早期的 CF 程序集(假设它们不使用手机不允许的东西,例如 P/Invokes)。实际上,我确实在 ORM 项目中添加了一些内容以添加 SQLite 二进制文件,并将表创建部分实现为勤劳的“种子”。 所以 WP7 上的 SL 在 CF 上运行,而不是在 CoreCLR 上? Afaik、CoreCLR 和 CF 是两个不同的运行时,尽管它们的程序集是兼容的。是时候研究一下了,谢谢! 正确,它使用的是 CF,而不是 CoreCLR。它们不一定是“兼容的”。 CoreCLR(即完整框架)程序集无法在手机上运行。电话组件可能在 CoreCLR 下工作。源代码比实际编译的程序集更具可移植性。是的,这有点令人困惑。【参考方案3】:如果你不相信使用 SQLite,你应该试试Db4o。它是一个面向对象的数据库,因此您不需要 ORM 工具(假设您只需要对象映射)。此外,它还支持 linq 查询。
【讨论】:
有关使用 db4o 和 WP7 developer.db4o.com/Forums/tabid/98/aft/10109/Default.aspx#29317 的信息,请参阅此线程【参考方案4】:有人在SQLite and sub-sonicSQLite and sub-sonic询问了关于 Subsonic 对 SQLite 的支持的问题
但是,由于平台上还没有官方支持的数据库,我还没有看到有人尝试为人们创建的各种数据库实现编写通用 ORM。
【讨论】:
这不是同一个问题。在这里我问是否有任何适用于Win7手机的ORM。当我问亚音速是否可以工作? @Huzaifa 我知道这不是同一个问题。这就是为什么我没有将其标记为重复。我只是强调一个相关问题。 “平台上还没有官方支持的数据库”..你就成功了。【参考方案5】:有 Perst:http://www.mcobject.com/perst。我现在正在使用它,还没有很多反馈。它使用 ActiveRecord 作为持久性模式。没有很多文档等,但它存在所以......这里有一个例子:http://mobileworld.appamundi.com/blogs/andywigley/archive/2010/06/07/perst-a-database-for-windows-phone-7-silverlight.aspx
http://siaqodb.com/ : 看起来很有希望,但不是免费的
SQLLite 会很酷,Silverlight 上有完整的 C# 实现,所以 WP7 离我们不远了。有这个 POC http://sviluppomobile.blogspot.com/2010/03/sqlite-for-wp-7-series-proof-of-concept.html 但它只有 SQLite,没有对象 APi 可以查询、存储等...
【讨论】:
【参考方案6】:您可能想看看sqlite-net。原始库实际上是针对 Mono 和 MonoTouch,但也有一个到 Compact Framework 的端口。它包含一个简单的 ORM。能够在 WP7 上运行 sqlite 可能有点棘手(必须使用独立存储),但您可以尝试使用 this proof of concept library。
【讨论】:
【参考方案7】:房间里的大象不是Linq to SQL,因为它是手机自带的,没有额外的依赖项(从Mango开始)?
【讨论】:
以上是关于Windows 7 手机的 ORM 映射器的主要内容,如果未能解决你的问题,请参考以下文章