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