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

use*_*802 53 linq linq-to-entities entity-framework linq-to-sql

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

Mik*_*erg 42

edmxEntity Framework的建模文件.

dbmlLinq 2 Sql的建模文件.

您应该花时间学习实体框架,因为不推荐使用Linq 2 Sql.

  • 他肯定应该学习EF,但L2S并没有被弃用.此外,如果他使用的是VS2008(.NET <4),与L2S相比,EF对于MSSQL的使用来说简直太糟糕且没有优化.不是每个人都需要或应该使用EF,专业工具有时比通用工具更好. (16认同)
  • 不,没有死,肯定会收到新功能,它甚至在这里讨论过(http://stackoverflow.com/questions/3041011/is-linq-to-sql-deprecated).它只是没有得到那么多的关注,但它再次不需要那么多的关注,因为它是一个全面的功能工具集.可悲的是,大多数人甚至不使用不属于L2S的EF功能,而是将EF视为L2S,同时忍受抽象不可避免带来的性能损失.因为"新奇因素"盲目地匆匆忙忙做事恕我直言并不是件好事,特别是如果你不需要它们 (4认同)
  • 也许它没有被正式弃用,但它肯定应该被视为开发已被关闭(http://blogs.msdn.com/b/adonet/archive/2008/10/29/update-on-linq-到-SQL和LINQ到实体-roadmap.aspx).但EF4之前的EF并不那么有趣,这是真的.IMO L2S正在为简单的项目工作,但是如果它是一个长期项目应该避免(我现在正在使用L2S,我感到痛苦) (2认同)

vcs*_*nes 36

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


小智 14

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

实体框架:
1.企业开发:
2.使用数据库的概念模型:
3.与所有数据源一起使用:
4.使用实体框架时创建".EDMX":

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

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

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

  • 很好的复制/粘贴!http://parassanghani.blogspot.com/2011/01/entity-framework-vs-linq-to-sql.html (11认同)