[MSDN]C# 3.0 锐利体验系列课程 之四 查询表达式LINQ (2)

转载 2007年09月26日 11:57:00

 C# 3.0 锐利体验系列课程(3):
查询表达式LINQ (2)
李建忠
jianzhong.lee@gmail.com
祝成科技高级培训讲师
www.softcompass.com

LINQ to SQL简介
•面向对象领域:
一切围绕对象(字段,方法,引用…)
•关系型数据库领域:
一切围绕表格数据(行,列,关系)
•Linq to SQL 将SQL的模式信息集成到CLR元数据
中,自然地将面向对象领域的对象与关系型数据库
中的表格数据相互转化,从而允许我们使用LINQ来
便捷地访问关系数据库,
• Linq to SQL是作为ADO.NET的一个重要组件,而
非完全替代品。

实体类映射
[Table(Name = "Category")]
public class Category
{
[Column(IsPrimaryKey = true)]
public string CategoryId;
[Column]
public string Name;
[Column]
public string Descn;
}
注意,其中的[Table] 特性表示将Category类与数据库中名
称为Category的表相对应。[Column] 特性则对应数据库中的
列。

DataContext 数据上下文对象
DataContext db = new DataContext("Password=0398;User
ID=sa;Initial Catalog=MSPetShop4;Data
Source=HUANGHE2");

Table<Category> Categorys = db.GetTable<Category>();
var result =
from c in Categorys
select c;
注意,DataContext非常类似于数据库链接对象,但是它为
Linq to SQL提供了更多支持。

 定义基本关系(1)
[Table(Name = "Category")]
public class Category {
…..
private EntitySet<Product> products;
[Association(Storage = "products", OtherKey = "CategoryId")]
public EntitySet<Product> Products
{
get { return this.products; }
set { this.products.Assign(value); }
}
}
注意, Products 映射了Category与Product之间的一对多关系。

定义基本关系(2)
[Table(Name = "Product")]
public class Product
{
…….
private EntityRef<Category> category;
[Association(Storage = "category", ThisKey = "CategoryId")]
public Category Category
{
get { return this.category.Entity; }
set { this.category.Entity = value; }
}
}
注意, Category映射了Product与Category之间的一对多关系。

更改数据源
string id = “DOGS";
var cat = db.Categories.Single(c => c. CategoryId == id);
cat. Name = “New Dogs";
Product p = new Product { …….};
cat.Products.Add(p);
db.SubmitChanges();
注意, SubmiChanges() 完成了对象层到数据层的更改。

 

相关文章推荐

Druid数据库连接池使用

阿里巴巴推出的国产数据库连接池,据网上测试对比,比目前的DBCP或C3P0数据库连接池性能更好   简单使用介绍 Druid与其他数据库连接池使用方法基本一样(与DBCP非常相似),...

架构的概念(系统架构,技术架构,应用架构)

系统架构:指的完整系统的组成架构,例如系统分成几个部分?服务平台、管理门户、终端门户、ATM门户、外部系统以及接口、支撑系统等,将这些系统进行合理的划分。然后再进行功能分类细分,例如服务平台内部划分为...

Spring3.0注解注入(@Resource)

applicationContext.xml配置如下: xmlns="http://www.springframework.org/schema/beans" xmlns:xs...

MYSQL常用命令

1.导出整个数据库 mysqldump -u 用户名 -p --default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1) mysqldu...

应用架构设计

无架构,不系统,架构是大型系统的关键。从形上看,架构是系统的骨架,支撑和链接各个部分;从神上看,架构是系统的灵魂,深刻体现业务本质。 架构可细分为业务架构、应用架构、技术架构,业务架构是战略,应用架构...

【数据库连接池】阿里巴巴开源项目 Druid 负责人温少访谈

Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和SQL解析器组成。该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计SQL...

应用架构演进

1.      传统的垂直应用的架构: 就是我们现在企业中最常用的MVC架构,它有一个主要的特点就是技术单一,开发上手快,测试,部署都是比较简单的 MVC的三层结构: a.  最前端的是V(view)...
  • mn_kw
  • mn_kw
  • 2017-05-23 17:12
  • 536

LINQ体验(2)--C# 3.0新语言特性和改进(上篇)

LINQ体验(2)--C# 3.0新语言特性和改进(上篇) 在第一篇中,知道了Visual Studio 2008新特性,从这篇开始进入此系列的第二部分——介绍C# 3.0新语言特性和改进。总体来说,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)