使用EF(v4,5,6)时,我一直使用数据库优先(我错误地认为这是从现有表格生成实体的唯一方法,EDMX等)。但今天我尝试了Code-first,它也可以生成POCO(以不同的方式,没有EDMX,不同的连接字符串,更少的cr8p,等等..!)
到目前为止,EF用于CRUD的用法似乎完全相同,任何使用过两者的人都可以确认没有什么不同(使用中),或者我应该知道的问题吗?
补充问题是,我可以在同一个项目中生成两个吗? (不是我想要的,但是现有的proj在文件夹中有EDMX,我可以创建另一个文件夹并生成Code-First Entities(仅限不同的表集),所以我最终得到DBContext和DBContext2?
是的,用法是一样的。如果检查生成的代码,您将看到它们使用相同的System.Data.Entity.DbSet属性,它们都从相同的System.Data.Entity.DbContext类继承。
是的,您可以在同一个项目中生成两者,但没有多大意义,因为如果数据库发生更改,您必须同时维护它们。