我的Web应用程序被分成不同的层,其中一个是工作方式如下的业务层:
PersonBusiness pb = new PersonBusiness();
Person p = pb.GetPerson(10);然后,每当查看记录时,我都会将person对象加载到ASP.NET控件中,然后为了保存,我执行了如下操作:
PersonBusiness pb = new PersonBusiness();
Person p = new Person();
p.Name = "Alex";
pb.SavePerson(p);如果我需要在应用程序中显示一个报告,而该报告实际上是从数据库调用视图的结果,而该视图实际上是业务层中不同对象的混合,该怎么办呢?您是否建议直接绕过业务层并加载来自视图的数据集?在这里使用OOP有意义吗?如果为true,那么我将不得不创建一个自定义对象,该对象将仅用于该单个报表,而不用于其他报表。
这是一个更一般的问题,严格来说并不适用于C#和SQL,但基本上适用于任何业务应用程序……
我希望我的问题说得通,
感谢您的宝贵时间,祝您愉快!
发布于 2012-07-26 00:28:05
这是来自企业级应用程序的。我们运行一个查询来搜索数据库中的多个表,以返回一个数据集。然后,我们将该数据集加载到数据网格中。它工作得很好,而且很容易使用。我们在其他任何地方都使用OOP,但这在试图限制您必须编写的代码量和易用性时是有意义的。
// Call in program
m_Info = m_InfoDAO.GetInfo();
//Database Call
public DataSet GetInfo()
{
try
{
if (this.cnn == null)
this.ConnectAndEnable(ref cnn);
string sql = @" select '0' as select_id, folder_name, folder_name as hidden_folder, (to_char(mod_date,'MM/DD/YYYY hh12:mi AM') || ' ' || mod_user) as mod_date
from index_info , index_patient
where deleted_date is null
order by folder_name asc";
OracleCommand cmd = new OracleCommand(sql, cnn);
OracleDataAdapter da = new OracleDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);
cmd.Parameters.Clear();
return ds;
}
catch (Exception ex)
{
Trace.WriteLine("Exception in InfoDAO.GetInfo: " + ex.Message);
throw ex;
}
}
//Initialize Grid
gridInfo.DataSource = m_Info;
gridInfo.ActiveRow = null;https://stackoverflow.com/questions/11654116
复制相似问题