我们通常在接受xml的数据库上编写存储过程,并将结果集返回为xml。我正在考虑为数据库调用提供一个抽象,如下面的
public List<Person> GetAllPeople()
{
string requestXml = "<Request><Type>GetAllPeople</Type></Request>";
//execute a procedure with above xml as input
//load the response xml into dataset
//foreach record instantiate Person & add to list
return List<Person>();
}
这样团队就可以使用强类型对象,而不是松散耦合Xml Strings。我认为这是ORM做得对的工作吗?或者我应该编写自己的数据访问层来返回对象而不是数据集和数据表。所以问题是
ORM是否适合此类数据访问?
抽象数据库调用的正确路径是什么?
SQL Server 2005,.NET 2.0,ASP.NET 2.0,C#2.0
答案 0 :(得分:1)
绝对设计数据访问层。该层将由DAO类组成,每个类用于访问特定类型的数据(或对象,如果它是OO系统)。
现在由您决定如何编写此图层。你有几个选择:
如果您决定使用ORM,请确保您要使用的是ORM。构建几个演示项目以了解ORM的工作原理。
现在,我对存储过程持怀疑态度,主要是因为它可以做各种事情 - 包括数据检索和逻辑执行。我避免存储过程以确保所有业务逻辑都在我的代码中(无论是tjava,PHP还是其他)。对于相对较小的系统,我建议您使用基于SQL查询的简单数据访问层。