我的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