Linq to sql 之 DataContext 与实体 简介

DataContext

 

DataContext 类型(数据上下文)是System.Data.Linq 命名空间下的重要类型,用于

 

把查询句法翻译成SQL 语句,以及把数据从数据库返回给调用方和把实体的修改写入数据库。

 

DataContext 提供了以下一些使用的功能:


以日志形式记录DataContext 生成的SQL

 

执行SQL(包括查询和更新语句)

 

创建和删除数据库


 

DataContext 是实体和数据库之间的桥梁,那么首先我们需要定义映射到数据表的实体。

 

定义实体类

 

using System.Data.Linq.Mapping;


[Table(Name = "Customers")]

 

public class Customer

 

{

 

       [Column(IsPrimaryKey = true)]

 

public string CustomerID {get; set;}

 

Beijing ZJS Express Stock Limited Company

Address: The 11th Floor,Zhaowei Building, Jiangtai Road, Chaoyang District of Beijing.

Postcode: 100016 Name: Liu Xiaohui Email:Xiaohui_liu0406@163.com

Tel: 13488810897  Office: 010-84561144-1816

Page 11 of 113

 

       [Column(Name = "ContactName")]

 

public string Name { get; set; }

 

 

       [Column]

 

public string City {get; set;}

 

}


DoNet Framework 3.5    系列


 

Northwind 数据库为例,上述Customers 类被映射成一个表,对应数据库中的

 

Customers 表。然后在类型中定义了三个属性,对应表中的三个字段。其中,CustomerID

 

字段是主键,如果没有指定Column特性的Name 属性,那么系统会把属性名作为数据表

 

的字段名,也就是说实体类的属性名就需要和数据表中的字段名一致。

 

现在,创建一个ASP.NET 页面,然后在页面上加入一个GridView 控件,使用下面的

 

代码进行绑定数据:

 

using System.Data.Linq;

 

DataContext ctx = new

 

DataContext("server=xxx;database=Northwind;uid=xxx;pwd=xxx");

 

Table<Customer> Customers = ctx.GetTable<Customer>();

 

GridView1.DataSource = from c in Customers where c.CustomerID.StartsWith("A") select

 

new {顾客ID=c.CustomerID,                           顾客名=c.Name, 城市=c.City};

 

GridView1.DataBind();

 

使用DataContext 类型把实体类和数据库中的数据进行关联。你可以直接在

 

DataContext 的构造方法中定义连接字符串,也可以使用IDbConnection

 

Beijing ZJS Express Stock Limited Company

Address: The 11th Floor,Zhaowei Building, Jiangtai Road, Chaoyang District of Beijing.

Postcode: 100016 Name: Liu Xiaohui Email:Xiaohui_liu0406@163.com

Tel: 13488810897  Office: 010-84561144-1816

Page 12 of 113


using System.Data.SqlClient;


IDbConnection conn = new


DoNet Framework 3.5    系列


SqlConnection("server=xxx;database=Northwind;uid=xxx;pwd=xxx");

 

DataContext ctx = new DataContext(conn);

 

之后,通过GetTable 获取表示底层数据表的Table 类型,显然,数据库中的Customers

 

表的实体是Customer 类型。随后的查询句法,即使你不懂SQL 应该也能看明白。从

 

Customers 表中找出CustomerID “A”开头的记录,并把CustomersIDName 以及City

 

封装成新的匿名类型进行返回。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值