EF中的DB优先和代码优先方法之间的区别?

时间:2013-12-07 02:43:11

标签: c# entity-framework

我是这方面的新手,并没有完全掌握数据库优先/代码优先/ EF中的POCO。这就是我的理解。如果这是准确的,请告诉我:

  1. 在DB第一种方法中,代码是基于现有数据库生成的。然后我们可以选择包含表/视图/存储过程。切线,我看到很多数据库首先接近数据库已经拥有所有的sprocs和db。 context仅包含sprocs(函数导入),但不包含任何表(db。set)对象。在这种情况下,你为什么要使用EF?为什么不直接使用ADO.Net和SQL Command?

  2. 在代码第一种方法中,db。在后端不存在。数据库。是使用POCO对象生成的。

  3. POCO:这仅用于代码吗?

2 个答案:

答案 0 :(得分:0)

  

为什么要使用EF?为什么不将ADO.Net与SQL命令一起使用

EF将自动为您填充实体对象 - 使用普通的ADO.NET,您必须填充对象或使用不同的ORM框架。

  

在代码优先方法中,后端不存在数据库。数据库是使用POCO对象生成的。

是;它还跟踪版本之间数据库的变化(尽管我仍然会查看脚本,因为EF可以做一些奇怪的事情来更新数据库)

  

POCO:这仅用于代码吗?

不一定,有T4模板框架可以从现有数据库对象生成POCO对象。

答案 1 :(得分:0)

通常在代码优先创建模型(如果要调用它,则为POCO),并根据创建的模型类创建数据库。首先,在数据库中,就像你说的那样,你有一个现有的数据库实体框架,并使用T4模板创建POCO(或你的模型类)。因此,POCO不仅仅是代码优先,而且实际上是一个在数据库中更常用的术语。希望这有帮助

同时检查一下:Code First vs. Database First Pros-Cons