我刚刚观看了关于EF6.1中新的“Code First to Existing Database”功能的MSDN视频。
http://channel9.msdn.com/Blogs/EF/Code-First-to-Existing-Database-EF6-1-Onwards-
然而,作为EF的新手,我发现它似乎是从数据库生成POCO模型类,这正是我理解的“基于数据库优先”的含义(我认为“数据库优先”与“代码优先”的相反)。两者有何区别?它们都是“数据库优先”!我刚刚观看了关于EF6.1中新的“Code First to Existing Database”功能的MSDN视频。
http://channel9.msdn.com/Blogs/EF/Code-First-to-Existing-Database-EF6-1-Onwards-
然而,作为EF的新手,我发现它似乎是从数据库生成POCO模型类,这正是我理解的“基于数据库优先”的含义(我认为“数据库优先”与“代码优先”的相反)。两者有何区别?它们都是“数据库优先”!Code First 有点不准确... 它真正应该被称为 "基于代码的模型" vs "基于XML的模型"。
Code First 根据类中的属性和/或代码中的流畅映射创建一个基于内存的模型。
而数据库和模型优先根据 .EDMX 文件创建一个基于内存的模型,然后再用它来生成类。
也就是说,Code First 使用代码作为其模型。数据库和模型优先使用 EDMX 文件作为其模型。对于现有数据库,Code First 只生成 Code First 类(属性和/或流畅映射),而数据库优先生成一个 EDMX 文件,然后通过 T4 模板生成类。