linq中.edmx和.dbml文件有什么区别?

时间:2011-03-18 13:20:52

标签: linq linq-to-sql entity-framework linq-to-entities

linq中的.edmx和.dbml文件有什么区别?在VS 2008中哪个数据源是edmx或dbml的最佳选择?在VS 2008中使用edmx文件会出现任何问题?我可以在VS-2008中使用edmx吗?

5 个答案:

答案 0 :(得分:42)

edmx 实体框架的建模文件。

dbml Linq 2 Sql 的建模文件。

您应该花时间学习实体框架,因为Linq 2 Sql已被弃用。

答案 1 :(得分:36)

.edmx是实体框架。 .dbml是LINQ-to-SQL。虽然它们的一般目的是相同的,但它们是完全不同的框架。实体框架是更新的,可能是您学习时间的最佳投资,因为我怀疑这是许多创新的目标。

答案 2 :(得分:14)

两者都是作为最新技术引入的,有时候使用哪种技术有点令人困惑。实体框架和LINQ to SQL有很多共同之处,但在很多方面仍然存在差异:

实体框架:
1.企业发展:
2.使用数据库的概念模型:
3.适用于所有数据源:
4." .EDMX"是在使用实体框架时创建的:

LINQ ::
1.快速应用开发:
2.与数据库中的对象一起使用:
3.主要使用SQL Server:
4." .dbml"在使用LINQ to SQL时创建:

实体框架更倾向于企业开发,其中模式通常针对存储考虑因素(如性能一致性和分区)进行优化。实体框架是围绕暴露面向应用程序的数据模型而设计的,该数据模型松散耦合并且可能与现有数据库模式不同。例如,您可以将单个实体(类)映射到多个或将多个实体映射到同一个表。实体框架在应用程序中添加“.edmx”(ADO.NET实体模型)文件。

LINQ to SQL主要具有支持针对SQL Server进行快速应用程序开发的功能。 LINQ to SQL允许您拥有现有数据库模式的强类型视图。您可以在表上构建LINQ查询并将结果作为强类型对象返回。 LINQ to SQL在应用程序中添加“.dbml”(LINQ to SQL)文件。您可以通过使用属性修饰现有类来使用LINQ to SQL。

[原文来源:https://parassanghani.blogspot.com/2011/01/entity-framework-vs-linq-to-sql.html]

答案 3 :(得分:2)

LINQ to SQL主要具有支持针对SQL Server进行快速应用程序开发的功能。 LINQ to SQL允许您拥有现有数据库模式的强类型视图。您可以在表上构建LINQ查询并将结果作为强类型对象返回。 LINQ to SQL在应用程序中添加“.dbml”(LINQ to SQL)文件。您可以通过使用属性修饰现有类来使用LINQ to SQL。

答案 4 :(得分:0)

我从不理解文献中的定义。无论如何,底线是L2S轻量级,EF重量很重。含义L2S仅适用于SQLServer,EF可以使用更多。

参考:Difference between L2S and EF