首先尝试Entity Framework Code;用法与”数据库优先”有什么不同吗?

Trying out Entity Framework Code-first; is the usage any different from Database-first?

在使用EF(v4,5,6)时,我一直使用数据库优先(我误以为这是从现有表,EDMX等生成实体的唯一方法)。但是今天我尝试了Code-first,它也可以生成POCO(以不同的方式,没有EDMX,不同的连接字符串,更少的cr8p等等)!

到目前为止,用于CRUD的EF的用法似乎完全相同,可以同时使用这两种方法的人请确认没有什么不同(用法)或我应该注意的陷阱吗?

还有一个补充问题,我可以在同一个项目中生成两者吗? (不是我想要的,但是现有项目的文件夹中有EDMX,我可以创建另一个文件夹并生成Code-First Entities(仅用于不同的表集),所以最终得到DBContext和DBContext2吗?


是的,用法是相同的。如果检查生成的代码,将会看到它们使用相同的System.Data.Entity.DbSet属性,并且它们都继承自相同的System.Data.Entity.DbContext类。

是的,您可以在同一个项目中生成这两者,但这没有多大意义,因为如果数据库发生更改,则必须同时维护它们。