摘要:
7.1 继承 DLinq支持单一表格的映射,也就是说,实体类以及它的子类的实体数据都被存储在同一个表格中。整个继承层次的所有数据都被扁平地存放在同一个数据库表格中,如果某行所对应的某种类型的实体不包含某个指定列,则将此列设为空值。单一表格映射存储是一种最简单的表达继承层次的方式,这种方式为多样性查询提供了优良的性能特性。 7.1.1 映射 使用DLinq实现继承层次的映射,您需要为基实体类指定下面... 阅读全文
摘要:
6.1 创建数据库 因为实体类拥有描述数据库表格和列的结构的特性,所以我们可以利用这些信息来创建一个新的数据库实例。您可以通过调用DataContext的CreateDatabase()来创建一个数据库,DLinq将根据已经定义的实体类的结构来生成数据库。您在很多地方需要用到这个功能。您可能需要构建一个在客户系统中自动安装的应用程序,或者需要实现一个离线保存数据的本地数据库的客户端应用... 阅读全文
摘要:
5.1 使用特性 在您的应用程序中定义一个实体类和普通对象类没什么区别,但是实体类需要附加特殊的说明来阐述实体类和数据库表格之间的关联。这些说明就是实体类的自定义特性。只有在您使用DLinq时,这些类的特性才会有意义。这和.NET framework中的XML序列化特性机制是一样的。DLinq利用这些“数据”特性获取足够的信息来将实体转化为对数据库的SQL查询以及将实体变化转化为SQL ins... 阅读全文
摘要:
DLinq 不只是实现了针对关系数据库的标准查询操作。DLinq不但可以将标准查询操作转化为SQL语句,还可以管理实体的整个生命周期,维持数据完整性以及自动完成数据的存储。 一个典型的应用场景是,通过一个或者多个查询返回实体的集合,然后通过这样或者那样的方式修改实体的数据,最后将这些修改保存到服务器中。一般的应用程序将重复上述过程,直到不再使用这些数据。就这点来说,实体和一般的对象每什么不一... 阅读全文
摘要:
DLinq实现了对数据库表相关联的实体集合的标准查询。这一章我们将阐述DLinq查询的细节。 执行查询 不论您写的是一个高级查询表达式(query expression)还是构建了一个简单的查询,这些查询都还不是最终的SQL命令,它不会被立即执行。它仅仅是对查询的一个描述。例如,下面例子中的局部变量”q”中只是一个查询表达式,而不是表示查询的最终结果。 var q = ... 阅读全文
摘要:
构建一个DLinq应用的第一件事情就是声明一个包含应用程序数据定义的对象类。那让我们来开始这个简单的应用。 创建实体类 我们创建一个简单的Customer类,关联SQL Server范例数据库Northwind的customers表。 [Table(Name="Customers")] public classCustomer { publicstring Custom... 阅读全文
摘要:
目前很多开发者都在通过这样或那样的方式来处理存储在关系数据库中的数据。但是现代的编程语言和数据库在信息的表示和处理上有着天壤之别。这种不一致表现在很多方面。最显而易见的是,使用编程语言提供的API来访问数据库信息都需要提供一个文本字符串。其实这些查询是程序逻辑的一部分,但是它们于编程语言来说却是不透明的。因此也就无法获取到语言的编译支持以及设计时的一些特征,如IntelliSenseTM。 ... 阅读全文