数据访问层中的业务对象
因此,我一直在通过TDD创建数据访问层,并且有些担心。我宁愿不走错误的道路,所以我想让你们看看我的想法是否符合干净的体系结构。 我的数据访问层(简称DAL)中的方法非常简单。它们与数据库中的存储过程一致(没有其他方法可以使数据库保持干净),并且它们包含与存储过程相同的参数。然后,他们仅连接到数据库,并返回查询结果。这是一个例子: public int DeleteRecord(int recordId) { recordId.RequireThat("recordId").NotZeroOrLess(); List<SqlParameter> parameters = new List<SqlParameter>(); parameters.Add(new SqlParameter { ParameterName = "@RecordId", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Input, Value = recordId}); return this.ExecuteNonQuery("DeleteRecord", parameters.ToArray()); } 这对于这种类型的方法非常有效,因为我对结果集没有做任何有意义的事情。我只想确保命令有效,所以我将返回非查询的结果,该查询只是受影响的行,并且我可以使用该数字来验证逻辑。 但是,在另一种DAL方法中,我想加载一条记录。我的加载过程将selects针对一堆表执行并返回a DataSet,但是我正在努力解决DAL是否应该使用来在方法内创建Business Objects的问题DataSet,或者我的Business Objects本身是否应该具有Load()获取该方法的方法的问题。DataSet然后从DAL开始,然后基本完成 通过DAL进行操作会导致业务对象中的逻辑更少(即使这只是选择逻辑,仍然是逻辑),但是会使DAL有点拥挤,使人感觉它确实在做它不应该做的事情。做。 你们有什么感想?