LINQ体验(16)——LINQ to SQL语句之DataContext

DataContext

DataContext作为LINQ to SQL框架的主入口点,为我们提供 了一些方法和属性,本文用几个例子说明DataContext几个典型的应用。

创建和删除数据库

CreateDatabase方法用于在服务器上创建数据库。

DeleteDatabase方法用于删除由DataContext连接字符串标识的数据库。

数据库的名称有以下方法来定义:

如果数据库在连接字符串中标 识,则使用该连接字符串的名称。

如果存在DatabaseAttribute属性 (Attribute),则将其Name属性(Property)用作数据库的名称。

如果连接 字符串中没有数据库标记,并且使用强类型的DataContext,则会检查与 DataContext继承类名称相同的数据库。如果使用弱类型的DataContext,则会引 发异常。

如果已通过使用文件名创建了DataContext,则会创建与该文件 名相对应的数据库。

我们首先用实体类描述关系数据库表和列的结构的 属性。再调用DataContext的CreateDatabase方法,LINQ to SQL会用我们的定义 的实体类结构来构造一个新的数据库实例。还可以通过使用 .mdf 文件或只使用 目录名(取决于连接字符串),将 CreateDatabase与SQL Server一起使用。 LINQ to SQL使用连接字符串来定义要创建的数据库和作为数据库创建位置的服 务器。

时间: 2024-07-31 11:57:53

LINQ体验(16)——LINQ to SQL语句之DataContext的相关文章

LINQ体验(8)—LINQ to SQL语句之Union All/Union/Intersect和Top/Bottom和Pag

LINQ体验(8)-LINQ to SQL语句之Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods 我们继续讲解LINQ to SQL语句,这篇我们来讨论Union All/Union/Intersect操作和Top/Bottom操作和Paging操作和SqlMethods操作 . Union All/Union/Intersect操作 适用场景:对两个集合的处理,例如追加.合并.取相同项.相交项等等. Concat(连接) 说明:连接不

LINQ体验(18)——LINQ to SQL语句之视图和继承支持

视图 我们使用视图和使用数据表类似,只需将视图从"服务器资源 管理器/数据库资源管理器"拖动到O/R 设计器上,自动可以创建基于这些 视图的实体类.我们可以同操作数据表一样来操作视图了.这里注意:O/R 设计 器是一个简单的对象关系映射器,因为它仅支持 1:1 映射关系.换句话说,实 体类与数据库表或视图之间只能具有 1:1 映射关系.不支持复杂映射(例如, 将一个实体类映射到多个表).但是,可以将一个实体类映射到一个联接多个相 关表的视图. 下面使用NORTHWND数据库中自带的In

LINQ体验(17)——LINQ to SQL语句之动态查询

高级特性 本文介绍LINQ的高级特性,其包括大家都关心的动态查询的用法 ,另外简单提下ID标识这个知识. 动态查询 有这样一个场景:应用程 序可能会提供一个用户界面,用户可以使用该用户界面指定一个或多个谓词来筛 选数据.这种情况在编译时不知道查询的细节,动态查询将十分有用. 在LINQ中,Lambda表达式是许多标准查询运算符的基础,编译器创建lambda表达 式以捕获基础查询方法(例如 Where.Select.Order By.Take While 以及其 他方法)中定义的计算.表达式目录树

LINQ体验(15)——LINQ to SQL语句之用户定义函数

用户定义函数 我们可以在LINQ to SQL中使用用户定义函数.只要把用户 定义函数拖到O/R设计器中,LINQ to SQL自动使用FunctionAttribute属性和 ParameterAttribute属性(如果需要)将其函数指定为方法.这时,我们只需简 单调用即可. 在这里注意:使用用户定义函数的时候必须满足以下形式 之一,否则会出现InvalidOperationException异常情况. 具有正确映射 属性的方法调用的函数.这里使用FunctionAttribute属性和 P

LINQ体验(9)——LINQ to SQL语句之Insert/Update/Delete操作

我们继续讲解LINQ to SQL语句,这篇我们来讨论Insert/Update/Delete操作 .这个在我们的程序中最为常用了.我们直接看例子. Insert/Update/Delete操作插入(Insert)1.简单形式 说明:new一个 对象,使用InsertOnSubmit方法将其加入到对应的集合中,使用SubmitChanges ()提交到数据库. NorthwindDataContext db = new NorthwindDataContext(); var newCustome

LINQ体验(7)-LINQ to SQL语句之Group By/Having和Exists/In/Any/All/Contains

我们继续讲解LINQ to SQL语句,这篇我们来讨论Group By/Having操作符和 Exists/In/Any/All/Contains操作符. Group By/Having操作符 适用 场景:分组数据,为我们查找数据缩小范围. 说明:分配并返回对传入 参数进行分组操作后的可枚举对象.分组:延迟 1.简单形式: var q = from p in db.Products group p by p.CategoryID into g select g; 语句描述:使用Group By

LINQ体验(5)——LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg

上一篇讲述了LINQ,顺便说了一下Where操作,这篇开始我们继续说LINQ to SQL语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects.LINQ to DataSets.LINQ to SQL.LINQ to Entities.LINQ to XML,但是相对来说LINQ to SQL在我们程序中使用最多,毕竟所 有的数据都要在数据库运行着各种操作.所以先来学习LINQ to SQL,其它的都差不多了,那么就从Select说起吧,这个在编写程序中也最为常

LINQ体验(12)——LINQ to SQL语句之对象标识和对象加载

对象标识 运行库中的对象具有唯一标识.引用同一对象的两个变量实际上 是引用此对象的同一实例.你更改一个变量后,可以通过另一个变量看到这些更 改. 关系数据库表中的行不具有唯一标识.由于每一行都具有唯一的主 键,因此任何两行都不会共用同一键值. 实际上,通常我们是将数据从数据库中提取出来放入另一层中,应用程序在该层对数据进行处理.这就是 LINQ to SQL 支持的模型.将数据作为行从数据库中提取出来时,你不期望表示 相同数据的两行实际上对应于相同的行实例.如果您查询特定客户两次,您将获 得两行

LINQ体验(6)——LINQ to SQL语句之Join和Order By

Join操作 适用场景:在我们表关系中有一对一关系,一对多关系,多对多 关系等.对各个表之间的关系,就用这些实现对多个表的操作. 说明: 在Join操作中,分别为Join(Join查询), SelectMany(Select一对多选择)和 GroupJoin(分组Join查询). 该扩展方法对两个序列中键匹配的元素进行 inner join操作 SelectMany 说明:我们在写查询语句时,如果被翻译 成SelectMany需要满足2个条件.1:查询语句中没有join和into,2:必须出现