gpt4 book ai didi

c# - 3 层架构 - 将 sql 查询放在业务层是否可以

转载 作者:行者123 更新时间:2023-11-30 13:47:47 26 4
gpt4 key购买 nike

我的 asp.net 项目基于三层架构。

(数据访问层)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 中构建的,这就是为什么我开发了在 BLL 中保留 sql 查询的项目,但现在我觉得我应该将它们移至 DAL。

所以我的问题是

  1. 可以将 sql 查询保留在 BLL 中,还是应该将它们移至 DAL?
  2. 是否可以使用数据表在层之间移动数据,或者我应该改用 DTO?

最佳答案

Is it okay to keep sql queries in BLL or I should move them to DAL?

没关系,但我认为这不是正确的做法。将它们放入您的 DAL 中它们所属的位置。

Is it okay to use datatables for moving data between layers or I should use DTO's instead?

我更喜欢使用 DTO,我认为这是可行的方法,但使用 DataTables 是可以接受的。

关于c# - 3 层架构 - 将 sql 查询放在业务层是否可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15361103/

26 4 0