- 1、本文档共45页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
先了解 DataContext
DataContext 类型(数据上下文)是 System.Data.Linq 命名空间下的重要类型,用于把查询句法翻译成 SQL 语句,以及把数据从数据库返回给调用方和把实体的修改写入数据库。
DataContext 提供了以下一些使用的功能:
以日志形式记录 DataContext 生成的 SQL
执行 SQL(包括查询和更新语句)
创建和删除数据库
DataContext 是实体和数据库之间的桥梁,那么首先我们需要定义映射到数据表的实体。
定义实体类
using
using System.Data.Linq.Mapping; [Table(Name = Customers)] public class Customer
{
[Column(IsPrimaryKey = true)]
public string CustomerID { get; set;} [Column(Name = ContactName)]
public string Name { get; set; } [Column]
public string City { get; set;}
}
以 Northwind 数据库为例,上述 Customers 类被映射成一个表,对应数据库中
的 Customers 表。然后在类型中定义了三个属性,对应表中的三个字段。其中, CustomerID 字段是主键,如果没有指定 Column 特性的 Name 属性,那么系统会把属性名作为数据表的字段名,也就是说实体类的属性名就需要和数据表中的字段名一致。
现在,创建一个 ASP.NET 页面,然后在页面上加入一个 GridView 控件,使用下面的代码进行绑定数据:
using
using System.Data.Linq; DataContext ctx = new
DataContext(server=xxx;database=Northwind;uid=xxx;pwd=xxx); TableCustomer Customers = ctx.GetTableCustomer();
GridView1.DataSource = from c in Customers where c.CustomerID.StartsWith(A)
select new {顾客 ID=c.CustomerID, 顾客名=c.Name, 城市=c.City};
GridView1.DataBind();
GridView1.DataBind();
使用 DataContext 类型把实体类和数据库中的数据进行关联。你可以直接在
DataContext 的构造方法中定义连接字符串,也可以使用 IDbConnection:
using
using System.Data.SqlClient; IDbConnection conn = new
SqlConnection(server=xxx;database=Northwind;uid=xxx;pwd=xxx); DataContext ctx = new DataContext(conn);
之后,通过 GetTable 获取表示底层数据表的 Table 类型,显然,数据库中的
Customers 表的实体是 Customer 类型。随后的查询句法,即使你不懂 SQL 应该也能看明白。从 Customers 表中找出 CustomerID 以“A”开头的记录,并把CustomersID、Name 以及 City 封装成新的匿名类型进行返回。
结果如下图:
强类型 DataContext
public
public partial class NorthwindDataContext : DataContext
{
public TableCustomer Customers;
public NorthwindDataContext(IDbConnection connection) : base(connection) { }
public NorthwindDataContext(string connection) : base(connection) { }
}
强类型数据上下文使代码更简洁:
NorthwindDataContext ctx =
NorthwindDataContext ctx = new NorthwindDataContext(server=xxx;database=Northwind;uid=xxx;pwd=xxx)
;
GridView1.DataSource = from c in ctx.Customers where c.CustomerID.Starts
文档评论(0)