数据访问层 - 亚音速,C#2.0

时间:2008-10-30 18:36:41

标签: c# subsonic

挖掘亚音速,我遇到了这个

link text

好文章但有一些?

现在我想要选择返回IList或Dataset,我是否会为此创建一个abstarct工厂,如果可以,我可以使用一个通用方法将IList或Dataset作为ref参数并填充传入的对象

在业务层中声明与我的数据层对话的静态类是一个好习惯,这样在我的UI中我有一个gridviewcontrol我可以这样做

mybusinesslayer.getdata(ref myDataset) //因为mybusinesslayer是静态的

mygridviewcontrol.datasource = mydataset ....

1 个答案:

答案 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编写解耦应用程序。