[英]c# DAL - Interface for business objects
我有一个具有Run方法的报表界面。
有多种类型的报告可实现此接口,并且每种报告都会运行自己的类型的报告,并从不同的表中获取数据。
每个报表使用其自己的数据上下文获取数据,然后使用填充数据,然后将它们作为数组返回(我希望至少能够返回类似于列表的内容,但是因为您必须定义列表,键入它会使难度增加)。
然后使用反射来查找返回数据的属性。
我希望我已经解释得足够好了!
有更好的方法吗?
按要求:
public interface IReport
{
int CustomerID { get; set; }
Array Run();
}
public class BasicReport : IReport
{
public int CustomerID { get; set; }
public virtual Array Run()
{
Array result = null;
using (BasicReportsDataContext brdc = new BasicReportsDataContext())
{
var queryResult = from j in brdc.Jobs
where j.CustomerID == CustomerID
select new JobRecord
{
JobNumber = j.JobNumber,
CustomerName = c.CustomerName
};
result = queryResult.ToArray();
}
}
}
然后,另一个类对数据进行foreach操作,并使用反射来查找字段名称和值,并将其放入xml文件中。
就目前而言,一切正常-我只是不禁想到有一种更好的方法-可能是由于我对C#的有限了解还无法让我看到。
就个人而言,我首先会问自己是否真的需要一个界面。 如果实现它的类在本质上确实有所不同(不仅在报告种类上),那就会是这种情况。 如果不是,即所有实现类基本上都是“ Reporters”,那么是的,有一种更方便的方法可以做到这一点:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.