挖掘亚音速,我遇到了这个
好文章但有一些?
现在我想要选择返回IList或Dataset,我是否会为此创建一个abstarct工厂,如果可以,我可以使用一个通用方法将IList或Dataset作为ref参数并填充传入的对象
在业务层中声明与我的数据层对话的静态类是一个好习惯,这样在我的UI中我有一个gridviewcontrol我可以这样做
mybusinesslayer.getdata(ref myDataset) //因为mybusinesslayer是静态的
mygridviewcontrol.datasource = mydataset ....
答案 0 :(得分:3)
您打算如何处理无法使用IList的数据集?恕我直言,你会希望尽可能强力打字。
在我的团队中,我们将中间层连接到ObjectDataSources,然后将所有GridView,ListView等连接起来......使用它们来获取数据:
业务层/中间层
namespace Project
{
public class BusinessLayer
{
public IList<Product> GetProducts()
{
return new Select().From( Products.Schema ).Where( Products.Columns.Status ).IsEqualTo( true ).ExecuteTypedList<Product>();
}
}
}
在页面上
<asp:ObjectDataSource id="odsProducts" runat="server" TypeName="Project.BusinessLayer" SelectMethod="GetProducts()"></asp:ObjectDataSource>
然后,从那里,您可以将任何数据视图控件(Gridview,Listview等)连接到数据源。它非常干净,代码隐藏中不需要代码。
我也看到Rob发布的那篇文章,并发现它有助于弄清楚如何用SubSonic编写解耦应用程序。