比较LINQ to SQL Diagram 和Entity Data Model
LINQ to SQL Diagram(DBML)和Entity Data Model(EDMX)都是.Net Framework v3.5 引入的新特性。相信有很多人不清楚它们之间的差异,这里简要分析比较。下面以Northwind 范例数据库进行说明:
LINQ to SQL 对象关系图(Object Relational Diagram)
![](https://i-blog.csdnimg.cn/blog_migrate/715e868f2d60d92af9a01177e7d3d392.png)
Entity Data Model (EDM) 实体数据模型
![](https://i-blog.csdnimg.cn/blog_migrate/5145dcfbe57f6560c5888712f78c7c2c.png)
Entity Data Model Diagram 和LINQ to SQL Diagram 有大量的相似之处。一个EDM 实体分为2部分:Scalar 属性和Navigation 属性。一个Navigation属性关联另一个EntityType实体类型,并定义了关系的方向(one-to-many, one-to-one 等等)。
EDM关联也LINQ to SQL关联采用不同的可视化属性界面,但实际上表示相同的内容。
LINQ to SQL : Association
![](https://i-blog.csdnimg.cn/blog_migrate/ab3a7bc90f066109200079e391c64c3c.png)
EDM : Association
EntityTypes 和 EntitySets 的命名
默认情况下,LINQ to SQL 自动更改复数形式的表名为单数形式的实体类名,EDM设计器则不会这样做。因此,当Northwind 数据表Employees 映射到EDM中时,EntityType 命名为Employees,这一命名容易导致混淆。
因此,建议手动对EntityType 更名 – Employee。
更名之后,你会发现EDM也更新了。在LINQ to Entities查询语句中,智能提示也正确显示ObjectQuery<Employee> NorthwindEntities.Employees,如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/96e1c502ba073217122f7e46c56a903f.png)
推荐Entity Framework
相关文章:
1. Entity Framework – Update Model From Database, Part 1
2. Entity Framework – Update Model From Database, Part 2
3. Entity Framework 架构简介
4. 比较LINQ to SQL Diagram 和Entity Data Model
英文链接: