绑定到业务对象
更新:2007 年 11 月
业务应用程序通常利用基于中间层数据访问层或业务组件的封装数据模型。通常,在 Web 应用程序中,您不但需要编写业务数据对象的代码,还必须另外编写用于与组件进行通信的代码,以及用于将控件绑定到由该组件管理的数据的其他代码。ASP.NET 数据源控件模型提供了 ObjectDataSource 控件、LINQ to SQL 类以及 LinqDataSource 控件,这不仅简化了业务组件的使用,还大大减少或消除了手动编写代码的必要。
ObjectDataSource 控件
ObjectDataSource 控件可以与封装数据以及提供数据管理服务的任何业务对象一起工作。ObjectDataSource 控件使用标准数据源控件对象模型,因此,数据绑定控件(如 GridView 控件)可以绑定到该控件。源业务对象可以直接管理数据访问,也可以充当现有业务组件的包装。有关更多信息,请参见 创建 ObjectDataSource 控件源对象。
通过将 ObjectDataSource 控件的 TypeName 属性设置为业务对象的类型(类名),可以将 ObjectDataSource 控件与业务对象关联。您可以指定 ObjectDataSource 将针对特定数据操作调用的业务对象的一个或多个方法。ObjectDataSource 控件的 SelectMethod 属性标识将用于检索数据的源业务对象的方法。同样,InsertMethod、UpdateMethod 和 DeleteMethod 属性分别标识将用于插入、更新和删除等操作的方法。
一旦将 ObjectDataSource 控件与业务对象关联,您便可以使用数据绑定控件的 DataSourceID 属性将控件绑定到 ObjectDataSource 控件,如下面的示例所示。
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB" Assembly="Samples.AspNet.VB" %>
<%@ Page language="vb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ObjectDataSource - Visual Basic Example</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<asp:gridview
id="GridView1"
runat="server"
datasourceid="ObjectDataSource1" />
<asp:objectdatasource
id="ObjectDataSource1"
runat="server"
selectmethod="GetAllEmployees"
typename="Samples.AspNet.VB.EmployeeLogic" />
</form>
</body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %>
<%@ Page language="c#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ObjectDataSource - C# Example</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<asp:gridview
id="GridView1"
runat="server"
datasourceid="ObjectDataSource1" />
<asp:objectdatasource
id="ObjectDataSource1"
runat="server"
selectmethod="GetAllEmployees"
typename="Samples.AspNet.CS.EmployeeLogic" />
</form>
</body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.JSL" Assembly="Samples.AspNet.JSL" %>
<%@ Page language="VJ#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ObjectDataSource - VJ# Example</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<asp:gridview
id="GridView1"
runat="server"
datasourceid="ObjectDataSource1" />
<asp:objectdatasource
id="ObjectDataSource1"
runat="server"
selectmethod="GetAllEmployees"
typename="Samples.AspNet.JSL.EmployeeLogic" />
</form>
</body>
</html>
有关更多详细信息,请参见 ObjectDataSource Web 服务器控件概述 一节中的主题。
LINQ To SQL 类
通过使用对象关系设计器,可以创建表示数据库及其表的类。由此设计器生成的类使用 LINQ to SQL 执行数据检索和修改。在创建这些类后,可以使用 LinqDataSource 控件或 ObjectDataSource 控件将其绑定到数据对象。有关 LinqDataSource 控件的更多信息,请参见 LinqDataSource Web 服务器控件概述。有关 LINQ 和 ASP.NET 的更多信息,请参见在 ASP.NET 中使用 LINQ。