我的一个项目中有很多用于数据访问的类,但由于从数据读取器检索数据的代码,这些类变得非常庞大。
我的代码通常是这样的:
// Execute the data reader
using (DbDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
obj = this.FillDataReader(reader);
objlist.Add(obj);
}
}
internal SomeObject FillDataReader(IDataReader dr)
{
SomeObject obj = new SomeObject ();
if (!dr.IsDBNull(dr.GetOrdinal("objectID")))
{
obj.ID = dr.GetInt32(dr.GetOrdinal("objectID"));
}
return obj;
}
一些 Fill 方法很容易达到 400 多行,那么有没有合适的方法将它们分开?可以接受部分类(class)吗?在理想情况下,我会使用 ORM,但遗憾的是我没有时间学习如何使用它。
最佳答案
当然,您可以使用分部类来分离 Fill 方法的代码。您甚至可以考虑使用模板系统来生成这些部分类文件。
也就是说,ORM 是一种更简单的解决方案,如果您的需求很简单,那么实际上不需要那么长时间就可以解决。
对于不需要精细控制的基本需求,LINQ to SQL 是一种享受,与许多人认为它作为 VS 2010/.NET 4 的一部分进行更新的想法相反。
另一个选项是 Entity Framework,它也作为 VS 2010/.NET 4 的一部分进行了更新。它为您提供了更多的控制权,但也可能需要更多的学习。
创建这些 400 多行长的 Fill 方法需要多长时间?你确定你不能用那个时间来学习 ORM 吗?程序员不应该感到被迫不断地编写千篇一律的代码(例如 ADO.NET 填充方法),它会很快从编程中带走乐趣!
关于c# - 部分类和数据访问代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1624131/