您打算如何处理无法使用 IList 的数据集?恕我直言,您将希望尽可能地进行强类型化。
在我的团队中,我们将中间层连接到 ObjectDataSources,然后我们所有的 GridViews、ListViews 等......使用它们来获取数据:
业务层/中间层
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 编写解耦应用程序。