手动ADO.NET POCO映射的替换?

时间:2012-07-25 20:05:59

标签: ado.net dapper petapoco massive simple.data

我已经编写了一个围绕ADO.NET的DbProviderFactory的包装器,我在我的应用程序中广泛使用它。我还编写了很多将IDataReader行映射到POCO的代码。然而,由于我有大量的课程,所以整个事情都变成了难以维持的屁股。

我一直在寻找像Petapoco这样的微观风格来取代整个她。我有几个疑问:

  1. 我有很多POCO,其中包含其他POCO作为属性。 Petapoco对此有何支持?
  2. 我应该使用像Massive或Simple.Data这样的ORM来返回动态对象并将其映射到POCO吗?
  3. 我可以采取任何方法将行映射到POCO吗?我不能真正使用基于约定的工具,因为我的数据库在设计方面并不是特别一致。

3 个答案:

答案 0 :(得分:0)

如何使用文本模板/代码生成器构建轻量级持久层?我有一个名为TextMetal的经过战斗强化的开源项目,可以根据经过验证的真实架构决策生成必要的持久层。唯一缺少的是对象关系对象,但它确实支持查询表达式,并且与设计不良的数据模式配合良好。

您可以看到使用上述工具调用Can Do It For的真实世界项目。

一旦你看了一眼,请随时向我询问任何设计决定。

答案 1 :(得分:0)

Simple.Data自动将其动态类型转换为静态类型。它将映射嵌套属性,只要它们已使用.With方法进行了急切加载。例如,

Customer customer = db.Customer.WithOrders().Get(42);

将填充客户对象的Orders属性。

答案 2 :(得分:0)

您可以使用QueryFirst,还是修改它?它需要你的sql并将其包装在设计时生成的vanilla ADO代码中。每次保存文件时,都会从结果模式中获得新的POCO。此外,您可以选择通过工具菜单中的选项测试所有查询并重新生成所有包装器。它依赖于Sql Server和SqlClient,所以除非你做一些修改,否则你将失去DbProviderFactory。