C# EF中DB优先和代码优先方法的区别?

C# EF中DB优先和代码优先方法的区别?,c#,entity-framework,C#,Entity Framework,我在这方面是个新手,还没有完全掌握EF中的DB-first/Code-first/POCO。这是我的理解。请让我知道这是否准确: 在DB-first方法中,代码是基于现有数据库生成的。然后,我们可以选择包括表/视图/存储过程。从另一方面说,我看到很多数据库都是在数据库已经有了所有存储过程和数据库的情况下首先使用的。上下文仅包含存储过程函数导入,但不包含任何表数据库。设置对象。在这种情况下,为什么要使用EF?为什么不将ADO.Net与SQL命令一起使用呢 在代码优先的方法中,db。后端中不存在。d

我在这方面是个新手,还没有完全掌握EF中的DB-first/Code-first/POCO。这是我的理解。请让我知道这是否准确:

在DB-first方法中,代码是基于现有数据库生成的。然后,我们可以选择包括表/视图/存储过程。从另一方面说,我看到很多数据库都是在数据库已经有了所有存储过程和数据库的情况下首先使用的。上下文仅包含存储过程函数导入,但不包含任何表数据库。设置对象。在这种情况下,为什么要使用EF?为什么不将ADO.Net与SQL命令一起使用呢

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

POCO:这只在代码中使用吗

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

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

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

对,;它还跟踪在不同版本之间对数据库的更改,尽管我仍然会检查脚本,因为EF可以做一些奇怪的事情来更新数据库

POCO:这只在代码中使用吗


不一定存在T4模板框架,它们将从现有数据库对象生成POCO对象。

通常,在代码中,首先创建模型或POCO(如果您想这样称呼它),然后根据创建的模型类创建数据库。在Database first中,正如您所说,您有一个现有的db,Entity framework使用该db并使用T4模板创建POCO或您的模型类。所以NOPOCO不仅仅是用于代码优先,实际上是数据库优先中更常用的术语。希望这有帮助


也请检查一下:

这是否意味着在代码优先的方法中,当我们更改模型类时,EF将负责更新DB?@user2250250 EntityFramework将在任何实体发生更改时跟踪上下文中的更改,但是当准备就绪时,您必须从dbContext调用SaveChanges。这很有意义!非常感谢分享这个链接。因为斯坦利特别依赖于我的每一个问题,所以我将答案标记为“D Stanley”。