EntityFramework 6.1 的代码优先工作流的 T4 模板
T4 template for Code First Workflow of EntityFramework 6.1
我喜欢在 Code First 工作流程中自定义 Entity Framework 6.1 使用的 T4 模板。
我的 MVC 应用程序中有 2 个项目,一个用于数据访问 (DAL),另一个用于域实体(模型)。
我在 DAL 项目中使用 "Code First from database" 实体数据模型向导来生成上下文和 POCO。
但是,我想自定义T4 模板,使其在Model 项目中生成数据对象,并让DbContext 位于DAL 项目中(关注点分离)。所以我安装了 EntityFramework.CodeTemplates.CSharp NuGet 包 (http://msdn.microsoft.com/en-US/data/dn753860).
如果不可行,我想自定义 T4 模板,以便我可以将域对象存储在单独的文件夹中。
第二件让我吃惊的事情是,如果我的数据库发生变化,我该如何重新设计我的模型?每次都需要添加新模型吗?
由于缺少文档,我很难自定义 EF 在 CodeFirst 中使用的这些 T4 模板。
感谢您的帮助!
山姆
微软是这么写的,每次都要生成一个新模型。这很痛苦。我们最终得到了一个生成项目,我们将文件复制到具有适当文件夹结构的最终项目。
我们还从一个数据库生成多个上下文。
习惯 T4 模板需要时间,但经过一些练习后它们非常简单。
关于模型的变化,因为它是代码优先方法,这意味着您的模型正在推动整个过程。因此,您可以根据需要多次更改模型,只需在包管理器控制台中使用以下命令,即可生成相应更改数据库的代码
Add-Migration <name-goes-here>
并执行您的更改使用
Update-Database -Verbose
要将您的模型与数据访问层分开,您可能必须指定一个连接字符串(它指向您项目中的正确文件夹):
这可能对您有所帮助。 Entity Framework 6 (EF6) code first migrations with models in separate project
我依靠“EntityFramework Reverse POCO Generator”扩展选择了非 OOB 解决方案。这个恕我直言,比糟糕的 OOB 向导和测试版的电动工具要好得多。
感谢所有意见并同意我的意见,即 OOB 向导需要 MS 重新考虑。
山姆
我喜欢在 Code First 工作流程中自定义 Entity Framework 6.1 使用的 T4 模板。
我的 MVC 应用程序中有 2 个项目,一个用于数据访问 (DAL),另一个用于域实体(模型)。 我在 DAL 项目中使用 "Code First from database" 实体数据模型向导来生成上下文和 POCO。
但是,我想自定义T4 模板,使其在Model 项目中生成数据对象,并让DbContext 位于DAL 项目中(关注点分离)。所以我安装了 EntityFramework.CodeTemplates.CSharp NuGet 包 (http://msdn.microsoft.com/en-US/data/dn753860).
如果不可行,我想自定义 T4 模板,以便我可以将域对象存储在单独的文件夹中。
第二件让我吃惊的事情是,如果我的数据库发生变化,我该如何重新设计我的模型?每次都需要添加新模型吗?
由于缺少文档,我很难自定义 EF 在 CodeFirst 中使用的这些 T4 模板。
感谢您的帮助!
山姆
微软是这么写的,每次都要生成一个新模型。这很痛苦。我们最终得到了一个生成项目,我们将文件复制到具有适当文件夹结构的最终项目。 我们还从一个数据库生成多个上下文。
习惯 T4 模板需要时间,但经过一些练习后它们非常简单。
关于模型的变化,因为它是代码优先方法,这意味着您的模型正在推动整个过程。因此,您可以根据需要多次更改模型,只需在包管理器控制台中使用以下命令,即可生成相应更改数据库的代码
Add-Migration <name-goes-here>
并执行您的更改使用
Update-Database -Verbose
要将您的模型与数据访问层分开,您可能必须指定一个连接字符串(它指向您项目中的正确文件夹):
这可能对您有所帮助。 Entity Framework 6 (EF6) code first migrations with models in separate project
我依靠“EntityFramework Reverse POCO Generator”扩展选择了非 OOB 解决方案。这个恕我直言,比糟糕的 OOB 向导和测试版的电动工具要好得多。
感谢所有意见并同意我的意见,即 OOB 向导需要 MS 重新考虑。
山姆