简介:
LINQ to Entities是Entity Framework的一部分并且取代LINQ to SQL作为在数据库上使用LINQ的标准机制。
微软把开发重点从LINQ to SQL转移到了LINQ to Entities,并且宣布LINQ to SQL不再提供更新,LINQ to SQL现在仍被支持但不推荐。
生成数据模型:
Entity FrameWork依赖于一个数据模型来使用LINQ to Entities进行查询。表中的行被转换为C#对象的实例,表中的列是这些对象的属性。数据库架构和数据模型对象的映射是Entity FrameWork的核心,同时也是LINQ to Entities能够工作的根本。
生成模型的步骤:
右击App_Code目录,单击“添加新项”,从项目模板里选择“ADO.NET实体数据模型”。设置要创建的文件的名称后,单击“确定”按钮。
可以选择生成一个空的模型,然后手工增加类,然后根据模型生成数据库。
还可以从一个已经存在的数据库生成模型,在“实体数据模型向导”里选择“从数据库生成”并配置数据库连接。可以选择要包含在数据模型里的数据库表、视图和存储过程。应该选择全部表并选中“确定所生成对象的单复数形式”选项。
vs会为你选择的数据库元素创建模型图。项目会自动生成两个文件:
Model.edmx。这个XML文件定义数据模型的架构。
Model.Designer.cs。这个C#代码文件包含数据模型的映射对象。
数据模型类 Model.Designer.cs
你不应该手动更改Model.Designer.cs文件,因为这个文件的内容会被数据模型重新生成,从而造成修改丢失。
该文件包含两端代码区域:Contexts和Entiteis。
1.派生的对象上下文类
Model.Designer.cs文件中定义的第一个类从ObjectContext派生。
这个类有3个构造函数,默认空的构造函数,使用生成实体数据模型时配置的连接字符串进行连接。
还可以使用带String参数的数据库连接字符串构造,还可以使用带EntityConnection参数的数据库连接对象进行构造。
派生的ObjectContext类包含了数据模型中包含的每个表的属性。每个属性都是一个强类型的ObjectSet。具体类型为它引用的实体类的类型。
示例:
public partial class Default : System.Web.Page{
protected void Page_Load(object sender, EventArgs e){
NorthwindEntities enty = newNorthwindEntities();
// 把所有国家为中国的职员查询显示到GridView。
IEnumerable<Employee> emp = from e in enty.Employees
where e.country.StartsWith("中国")
select e;
GridView1.DataSource = emp;
GridView1.DataBind();
// 把所有国家为中国的职员的ID和姓显示到GridView。
// 注意这里用了var声明,因为select时只查询了ID和FirstName,不能使用IEnumerable<Employee>
varemp2 = from e in enty.Employees
where e.country.StartsWith("中国")
select new{ID = e.ID,FirstName=e.FirstName};
GridView2.DataSource = emp2;
GridView2.DataBind();
}
}
2.实体类
用于把数据库表的记录映射到C#对象。如果选中了“确定所生成对象的单复数形式”选项,那么像Employees这样的表创建的实体对象名称是Employee。
每个实体对象包含如下内容:
一个工厂方法:可以通过调用默认的构造函数或工程方法来创建实体对象的新实例。
字段属性:实体对象为它们派生的数据库表的每个列包含一个字段属性。
导航属性:如果数据模型中包含了外键关系,实体对象就会包含帮助访问关联数据库的导航属性。
相关推荐
完整的linq to sql 学习笔记。
(英文版)WCF 4.0 Multi-tier Services Development with LINQ to Entities Packt Publishing 出版2010, PDF格式
Entity Framework技术系列之7:LINQ to Entities.pdf
linq to sql 语法 学习笔记
WCF 4.0 Multi-tier Services Development.with LINQ to Entities
Linq to entities的一个小例子,利用它可以很方便地完成数据库访问
Packtpub WCF 4.0 Multi tier Services Development with LINQ to Entities Jun.2010 关于WCF 4.0 和LINQ to Entity 的 新书 流行加时尚的编程利器
LINQ to SQL语句(1)之Where LINQ to SQL语句(2)之Select/Distinct LINQ to SQL语句(3)之Count/Sum/Min/Max/Avg LINQ to SQL语句(4)之Join LINQ to SQL语句(5)之Order By LINQ to SQL语句(6)之Group By/Having LINQ ...
实现linq多个查询条件连接功能(支持linq to sql 和linq to entity)。 按多个指定属性排序功能。 不同参数的lamdba表达式条件间的转换功能。
LINQ体验 LINQ To Sql学习文档
LINQ TO SQL[1] 是包含在.NET Framework 3.5 版中的一种 O/RM 组件(对象关系映射),O/RM 允许你使用 .NET 的类来对关系数据库进行建模。然后,你可以使用LINQ对数据库中的数据进行查询、更新、添加、删除。 LINQ TO ...
很实用的linq笔记 整理
linq基础 linq to sql linq基础 linq to sql
LINQ研究笔记,简单介绍在B/S技术三层框架下运用LINQ TO SQL数据连接技术,具体内容,自己研究好了。
LINQ To SQL实现分页效果源码 VS2008 Frameworks3.5 LINQ To SQL 实现分页效果 数据库SQL 2005
小小的心得,最近在学习linq,主要是linq to entitties方面的,主要是相关查询的一些注意。
Linq 大全 Linq To Sql Linq To DataSet Linq To Object Linq to Xml
Your Complete Example-Rich Guide to Using and Extending LINQ to Objects and PLINQ Using LINQ to Objects, .NET developers can write queries over object collections with the same deep functionality ...