我的asp.net项目基于三层架构。3层架构 - 是否可以将SQL查询放入业务层
(数据访问层)DAL - (类库)
private static string connString ="";
private static OracleConnection conn;
public static OracleConnection OpenConn()
{
if (conn==null)
{
conn = new OracleConnection(connString);
}
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
return conn;
}
public static DataTable Select(string query)
{
DataTable dt = new DataTable();
OracleDataAdapter da = new OracleDataAdapter(query, OpenConn());
da.Fill(dt);
return dt;
}
public static void Execute(string query)
{
OracleCommand cmd = new OracleCommand(query, OpenConn());
cmd.ExecuteNonQuery();
}
我已经把我所有的问题在(业务逻辑层)BLL类(所有BLL类是单独的类库项目)
如EmployeeBLL
public static class EmployeeBLL
{
public static DataTable Employees()
{
DataTable dt = new DataTable();
string q = string.Format("select * from employees");
dt = OraDAL.Select(q);
return dt;
}
public static DataTable AddEmployee(string name)
{
DataTable dt = new DataTable();
string q = string.Format("INSERT INTO employees (ename) VALUES('{0}')", name);
dt = OraDAL.Select(q);
return dt;
}
}
我曾经见过的SQL查询在BLL构造,这就是为什么我开发的项目keepi上三层架构的一些博客文章在BLL ng sql查询,但现在我觉得我应该将它们移动到DAL。
所以我的问题是
- 难道好保持SQL查询中BLL或者我应该将它们移到DAL?
- 可以使用数据表来移动图层之间的数据,还是我应该使用DTO?
您可能会发现http://stackoverflow.com/a/15267352/187752有用。 – Kimi 2013-03-12 14:06:46