使用datareader填充业务对象的最快方法?

时间:2011-04-20 10:44:54

标签: c# asp.net ado.net datareader

最快,最好和最快的是什么?建议使用DAL中的datareader填充业务对象的方法?目前我使用

myObject.Name=(string) myDataReader["Name"];
myObject.Age=(int) myDataReader["Age"];

达明。

4 个答案:

答案 0 :(得分:4)

要回答这个问题(而不是推荐ORM),最快方式就是您已用几行代码说明的方式。这些行是非常脆弱的代码,但是如果你消除DbNull检查和TryParse或Parse操作,并使用列序号而不是列名,那么代码就不会更快或更直接。

当然,如果您打算采用这种方法,那么您最好确保您的数据库代码完全无懈可击,并以完全正确的顺序返回项目,并使用适当的值(即列中没有空值)在C#代码中分配给值类型)。毋庸置疑,这种代码长期来说不是很容易维护......

答案 1 :(得分:3)

Dapper项目看作轻量级ORM实现。

据我所知,它实际上是由(以及)StatOverflow开发的。

答案 2 :(得分:2)

如果您正在使用数据读取器,那么除了可以对可能为null的列使用空值检查之外,您的方式是一种好方法。最快的方法是使用列索引而不是名称。最好的方法是创建一个T4模板,该模板将在某些数据字典(可能是xml文件)上运行,以便为DTO生成最快的代码并填充这些DTO。

编辑:哦! - 我忘记了 - 推荐的方法是使用一些O / R mapper框架,不要太担心这些平凡的细节!

答案 3 :(得分:1)

Entity Framework and ADO.NET是你的朋友。

如果你想稍后调整它,学习T4并编写自己的模板,你可以写下这样的东西:

  • Standart CRUD WCF网络服务
  • 克隆