从 Entity Framework 4(使用 Visual Studio 2010)开始,生成的代码从 T4(文本模板转换工具包)文件中输出,您可以对其进行编辑,这样您就可以完全控制生成的内容。请参阅Oleg Sych 的博客,该博客是关于 T4 的信息库。代码生成不是问题,T4 开启了如此多的视角,我再也离不开它了。
我目前正在从事一个项目,我们使用 Entity Framework 4 作为数据访问层,并使用 Scrum 作为敏捷项目管理方法。从一个 sprint 到另一个 sprint,添加了几张表格,修改了其他表格,添加了新要求。当您遇到每个潜在的 EF 问题时(例如知道默认情况下数据库中的默认值不会保留在 .edmx 文件中,或者将可为空的列更改为不可为空的列并且更新设计器不会更改映射的属性状态),你很高兴去。
编辑:回答您的问题,它是 EF 4,其代码生成基于 T4 而不是 T4 支持 EF。在 EF 3.5(或 EF 1.0,如果您愿意)上,理论上您可以通过从头开始编写 T4、解析 T4 代码中的 EDMX 文件并生成实体来使用 T4。考虑到所有这些都已由 EF 4 完成,这将是相当多的工作。此外,Entity Framework 3.5 仅支持一种类型的实体,而 EF 4 作为 POCO 实体的内置或可下载模板(什么都不知道)关于持久性),自我跟踪实体......
考虑到 Entity Framework 本身,我认为它在其第一个版本中缺少许多功能,虽然可用,但使用起来非常令人沮丧。EF4 得到了更大的改进。它仍然缺少一些基本功能(如枚举支持),但它现在已成为我选择的数据访问层。