.Net 2.0 的微 ORM? [关闭]

Posted

技术标签:

【中文标题】.Net 2.0 的微 ORM? [关闭]【英文标题】:Micro-ORM for .Net 2.0? [closed] 【发布时间】:2012-02-01 15:56:32 【问题描述】:

我正在编写一个新的 C# Web 表单应用程序,它很可能会部署在仅支持 .Net 2.0 的 Web 服务器上。

我希望能够使用 Dapper 或 PetaPoco 之类的东西进行数据访问和操作,但似乎它们都需要 .Net 3.0 或更高版本。

是否有类似的替代方案适用于 .Net 2.0?

我知道 SubSonic 和 NHibernate,但我真的只是在寻找一些东西来查询数据库并快速将结果填充到 POCO 中。

谢谢!

【问题讨论】:

很想升级。但它托管了一些关键业务应用程序,因此老板不太热衷于升级并可能破坏某些东西。 Dapper 确实有一些 3.0 支持。我还没有在 2.0 上尝试过,老实说,我还没有想过哪些位不起作用……但它可能会起作用。出于好奇,您有什么编译器版本? (您可以从大多数编译器版本中定位 .net 2.0) 尝试从 NuGet 安装 Dapper,它告诉我它与 2.0 不兼容。还尝试了 PetaPoco,但由于其 Linq 依赖关系,它引发了各种错误。有没有人安装 .Net 4 的实例破坏了他们的 2.0 应用程序?开始认为我最安全的选择可能是只使用 DbDataReader 和 DbCommand,创建几个辅助方法,然后手动填充 POCO 和集合。 我想这取决于我们使用了多少 LINQ,以及有多少可以轻松替换为非 LINQ。 【参考方案1】:

Simple.Data 或 Dapper 怎么样。

我正在使用 Dapper 构建 WCF 服务,可以推荐它。

编辑:Arrgh,刚刚注意到 2.0 的东西,这两个都需要 4。看看你是否可以更新!

【讨论】:

Dapper 不需要 4.0 - 有一个 3.0 版本的 IIRC 真的吗,我还以为是用c# 4.0动态的? c# 3 build 不包含非泛型 Query 方法(尽管我们可能会返回某种字典),并用“object”替换了一些其他“动态”用法【参考方案2】:

找不到在 .Net 2.0 环境中运行良好的软件。将为 4.0 编写应用程序并部署在不同的服务器上。

【讨论】:

不需要 - 您可以单独安装 .net 4.0 并选择每个应用程序池的版本。如:一个可以运行 2.0 的东西,另一个可以运行 4.0 框架。 其实是有这个需求的。当原始服务器被指定时,它只被赋予了一个 12GB 的操作系统分区。主分区上没有足够的磁盘空间来安装 .Net 4。幸运的是,还没有任何新的操作系统服务包 :) 我们实际上将在今年更换服务器,所以现在是有意义的在另一台服务器上部署应用程序。【参考方案3】:

LLBLGen 是一个选项。与 2.0 一起工作,它使用的模板足够灵活,可以生成类似 POCO 的类。但是,它不是免费的。

【讨论】:

感谢您的建议。我不是在寻找代码生成、活动记录类型的东西。我有 MyGeneration 和一些类似的模板。这个数据库有点复杂,我使用它需要许多复杂的连接。我所需要的只是一个简单的 DAL,它允许我查询数据库并将结果填充到一些 POCO 中。也许我最好的办法就是创建几个辅助方法来从读者那里获取结果并将它们填充到 POCO 中。【参考方案4】:

PetaPoco 支持 .net 3.5 只需使用语句在上面的 PetaPoco.cs 文件中添加以下行:

#define PETAPOCO_NO_DYNAMIC

【讨论】:

以上是关于.Net 2.0 的微 ORM? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

具有共享数据库的微服务?使用多个 ORM? [关闭]

寻找.Net ORM [关闭]

Yii 还是 ZendFramework? [+ORM] [关闭]

没有 Linq 的 .net 的 ORM [关闭]

.net 的简单 orm 映射器 [关闭]

用于简单 .NET 应用程序的 ORM [关闭]