Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework T4 EntityFramework 6.1代码优先工作流模板_Entity Framework_Entity Framework 6 - Fatal编程技术网

Entity framework T4 EntityFramework 6.1代码优先工作流模板

Entity framework T4 EntityFramework 6.1代码优先工作流模板,entity-framework,entity-framework-6,Entity Framework,Entity Framework 6,我喜欢自定义Entity Framework 6.1在代码优先工作流中使用的T4模板 我的MVC应用程序中有两个项目,一个用于数据访问(DAL),另一个用于域实体(模型)。 我正在DAL项目中使用“数据库代码优先”实体数据模型向导来生成上下文和POCO 然而,我想定制T4模板,以便它在模型项目中生成数据对象,并让DbContext位于DAL项目中(关注点分离)。因此,我安装了EntityFramework.CodeTemplates.CSharp NuGet包() 如果不可行,我想自定义T4模板

我喜欢自定义Entity Framework 6.1在代码优先工作流中使用的T4模板

我的MVC应用程序中有两个项目,一个用于数据访问(DAL),另一个用于域实体(模型)。 我正在DAL项目中使用“数据库代码优先”实体数据模型向导来生成上下文和POCO

然而,我想定制T4模板,以便它在模型项目中生成数据对象,并让DbContext位于DAL项目中(关注点分离)。因此,我安装了EntityFramework.CodeTemplates.CSharp NuGet包()

如果不可行,我想自定义T4模板,以便将域对象存储在单独的文件夹中

第二件让我惊讶的事情是,如果我的数据库发生了变化,我如何重新设计我的模型?我是否每次都需要添加一个新模型

由于缺乏文档,我很难定制EF在CodeFirst中使用的这些T4模板

谢谢你的帮助


Sam

微软这样写的,你每次都必须生成一个新的模型。这是一种痛苦。我们最终得到了一个用于生成的项目,从中我们将文件复制到具有适当文件夹结构的最终项目。 我们还从一个数据库生成多个上下文


习惯T4模板需要时间,但经过一些实践后,它们非常简单。

关于模型的更改,因为它是代码优先的方法,这意味着您的模型正在推动整个过程。因此,您可以根据需要多次更改模型,只需在PackageManager控制台中使用以下命令,即可生成相应更改数据库的代码

Add-Migration <name-goes-here>
要使模型与数据访问层分离,您可能必须指定一个连接字符串(该字符串指向项目中的正确文件夹):


这可能对你有帮助

我依靠“”扩展选择了非OOB解决方案。这个IMHO比OOB向导要好得多,OOB向导非常糟糕,而且是测试版的电动工具

感谢所有的意见,并同意我的意见,即OOB向导需要MS重新思考


Sam

您必须创建一个新的。
Update-Database -Verbose