识别实体框架,linq到sql,linq到实体,DbContext或ObjectContext

时间:2013-08-29 07:15:21

标签: visual-studio-2012

我对微软开发的几个数据映射器感到困惑。

我想知道如何快速识别DAL中使用的映射器。

我想,如果.dbml文件是Linq-to-SQL& .edmx文件它将是实体框架。

有人可以建议我们如何正确识别使用哪个映射器?

提前致谢...

2 个答案:

答案 0 :(得分:1)

正确的是,当你有一个.dbml文件时,项目使用linq to sql,而.edmx代表实体框架。

Linq to entities不是另一个orm它只是在使用实体framewok时如何调用linq查询,因为实体框架生成的类称为“实体”,它只是一个命名约定来表示差异,如

  • Linq to Sql(只有这个与mapper和Linq命名约定的名称相同)
  • Linq to Entities
  • Linq to XML
  • Linq to Objects
  • Linq to Sharepoint
  • Linq to DataSet

如果你想弄清楚你是否在实体框架中使用DbContext或ObjectContext API,你必须找到上下文类,它完成整个工作并查看它继承的内容。

public class Entities : DbContext

public class Entities : ObjectContext

如果在解决方案资源管理器中看到.edmx根目录下的t4模板,你也可以看出来,它们被称为“ModelName”.tt和“ModelName”.Context.tt,如果这些文件存在,你使用的是DbContext API如果不是ObjectContext。

答案 1 :(得分:0)

是的你是对的.. 如果.dbml文件是linq to sql& .edmx文件它将是实体框架。