问题标签 [t4scaffolding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
132 浏览

asp.net-mvc - 当我将 DbContextClass 移动到数据层时,脚手架中断

我的 DbContext 类与模型 ( MvcApplication.Models) 位于同一文件夹和命名空间中。我认为将它放在我的存储库所在的文件夹和命名空间中会更好(MvcApplication.Data)。我这样做了,代码编译并运行,但后来我尝试搭建一个控制器。我收到了这个错误:

Exception calling "GetDirectoryName" with "1" argument(s): "Illegal characters in path." At C::\....\MvcScaffolding.1.0.9\tools\Controller\MvcScaffolding.Controller.ps1:89 char:122

这是第 89 行: $controllerNamespace = [T4Scaffolding.Namespaces]::Normalize($defaultNamespace + "." + [System.IO.Path]::GetDirectoryName($outputPath).Replace([System.IO.Path]::DirectorySeparatorChar, "."))

所以我把它移回来,脚手架又能工作了。我可以修复脚手架让我移动 DbContext 吗?

也许数据层是错误的地方?我在 SaveChanges 覆盖中放置了一些自定义 sql,但也许这违反了一条不成文的规则。也许 sql 应该移动并且 DbContext 应该留在模型中?

0 投票
5 回答
7668 浏览

visual-studio-2013 - 在 Mvc5、EF6、VisualStudio 2013 中使用存储库的脚手架控制器

在 vs2012 中,我曾经使用 Steve Sanderson 的 mvcScaffolding和这个包,我可以用单元测试和控制器用存储库和依赖注入来构建动作方法。我的问题很简单。在vs2013中有没有办法做到这一点?当我在 vs2013 中安装软件包时,出现以下错误:

0 投票
2 回答
903 浏览

visual-studio-2013 - 在 Visual Studio 2013 脚手架错误上使用 EF6 的 MVC 4

我刚刚开始使用带有 EF6 的 Visual Studio 2013,并且我已经使用 MVC 4 创建了一个演示应用程序。我试图搭建一个控制器,但我一直收到错误消息。我已经从包管理器控制台安装了 MVCScaffolding,并且正确安装了所有内容,包括 T4Scaffolding、T4Scaffolding.Core... 但是我不断收到此错误。请帮帮我

请告诉我我做错了什么。多谢

0 投票
1 回答
1834 浏览

entity-framework - LocalDB 数据库存储在哪里?

我想测试构建应用程序的多种方法(数据库优先、模型优先、代码优先)。在使用 T4Scaffolding 并且对 DB 后期修改有很多问题之后,我认为 EF 不够灵活。现在我发现了一件很奇怪的事情。我在 Web.Config 中指定了一个“DefaultConnection”,并指向解决方案的 App_Data 文件夹中的单个 .mdf 文件。使用 Code-First 方法,我创建了我的实体(类),然后搭建了存储库、上下文,一切似乎都工作得很好,除了我得到了在我“删除”和更新数据库之前存储的数据。但是,在检查 VS 服务器资源管理器后,数据库只包含用于身份(用户、角色)的表,这表明实际的数据库在其他地方。我怀疑它位于'C:\Users{MyUser}\AppData\Local\Microsoft\Microsoft SQL Server 本地 DB\Instances'。但我无法从那里打开 .mdf 文件进行检查,因为它们已经在使用中。我被困住了。我的数据在哪里???

忘了提到我的应用程序中有两个上下文,因此我在 PM 控制台中收到警告:“在程序集中发现了多个上下文类型......”。

然而,第一个是“ApplicationDbContext”,它只指身份数据库:

第二个上下文绑定到来自 Web.Config 的单个数据库连接,它具有业务逻辑实体

0 投票
0 回答
184 浏览

c# - 未继承 ModelMetadata 属性

我有一个 ModelBase 抽象类,我希望我的所有模型都继承它:

当我继承该基类时,[ScaffoldColumn(false)] 的属性似乎没有被继承:

这意味着当我在构建我的 CRUD 视图的添加控制器期间使用新的 VS 2013 脚手架模板时,LastModifiedDate 和 CreatedDate 将被搭建(即,它们将出现在创建和编辑视图中)。

如果 Scaffold 属性没有被继承是真的,因为它的 AttributeUsageAttribute.Inherited 属性设置为 false,那么有没有办法使用继承或其他一些编程策略来为我的所有模型提供 LastModifiedDate 和 CreatedDate 属性,同时还让ScaffoldColumn 标签沿用?

0 投票
3 回答
2231 浏览

asp.net - 包裹加载不好

我在我的项目中安装了 MvcMailer 包。所以我试图做脚手架,但它没有用。我用谷歌搜索了这个。我得到了我应该安装 T4Scaffolding 和 MvcScaffolding 的建议

我这样做并重新启动了我的视觉工作室。但不幸的是,当我从某个包开始我的项目时,不能很好地加载。脚手架包。好像有冲突。

错误信息如下

0 投票
1 回答
5732 浏览

powershell - 'Must specify an object' on piping variable to Get-Member

How come I can successfully pipe result of a cmdlet to Get-Member, but not through a variable?

.

Edit: https://i.imgur.com/AeUW6Ge.png

enter image description here

0 投票
0 回答
64 浏览

msbuild - T4Scaffolding 程序集 MSBuild 变量未解析

我有一个开源项目,我必须指示用户将 dll 放在 c:\NPEG.dll https://github.com/leblancmeneses/AngularKendo.IntegrationTests/blob/master/AngularKendo.IntegrationTests/CodeTemplates/Scaffolders/ T4WithNUnitFeature/T4WithNUnitFeatureTemplate.cs.t4

相反,我想支持: <#@ assembly name="$(TargetDir)NPEG.dll" #> https://github.com/leblancmeneses/RobustHaven.IntegrationTests/blob/master/T4/CodeTemplates/Scaffolders/T4WithNUnitFeature/ T4WithNUnitFeatureTemplate.cs.t4

但是,这会导致引用混乱、程序集加载错误,因为它无法找到。

NPEG.dll 将位于 bin 目录中。

有谁知道我可以如何使用 T4Scaffolding 解析相对 dll?

编辑

重现步骤

我已经检查了 csproj 的更改。程序集引用应该适用于:“NPEG.dll”和“$(myLibFolder)NPEG.dll”——但是,它不能

.

参考

谢谢您的帮助。

0 投票
1 回答
12436 浏览

asp.net-mvc - ASP.NET MVC 5 自定义脚手架选项 [t4 模板]

目前,我正在开发一个框架,我想在 Visual Studio 菜单中添加自定义脚手架选项。

自定义脚手架选项

默认情况下,对话框中的"MVC5 Controller with views, using Entity Framework"选项 3 选择"CodeTemplates\MvcControllerWithContext\Controller.cs.t4",即 t4 再次以视图 t4 模板为目标

  • “代码模板\MvcView\ModelMetadataFunctions.cs.include.cs.t4”
  • “代码模板\MvcView\Create.cs.t4”
  • “代码模板\MvcView\Edit.cs.cs.t4”
  • “代码模板\MvcView\Delete.cs.cs.t4”
  • “代码模板\MvcView\List.cs.cs.t4”

可视化

我已经修改 t4 模板快一年了,我还没有找到任何证据表明它是如何针对这些视图或如何在脚手架对话框中添加选项的。我用谷歌搜索了很多,但没有找到任何接近的东西。

总之,我只是在寻找可以添加或修改那些 t4 模板的位置并在脚手架对话框中添加新脚手架的引用的地方

任何答案将不胜感激。谢谢你。

0 投票
1 回答
359 浏览

entity-framework - 如何创建考虑 EF 的 DatabaseGenerated 属性的自定义 MvcView 脚手架

是的,我有一个项目,我正在使用我的 EF 6.x 实体,就好像它们也是我的 ViewModels - 我没有 AutoMap - 我已经研究并了解了风险。

我的数据库有很多自然键。在我的 Code First POCO 中,我的属性如下所示:

我正在尝试编辑脚手架模板(我的项目通过 SideWaffle VSIX 具有“CodeTemplates”目录),并且我特别试图影响默认为 MvcView/Edit.vb.t4 生成的剃须刀

由于关键是反映回模型绑定器的重要信息,因此默认脚手架呈现隐藏输入,但是,在它是 DatabaseGeneratedOption.None 的情况下 - 我希望它会呈现一个额外的可见标签,以便用户很容易理解什么'ProfileId ' 他们正在编辑。

换句话说,默认脚手架假定代理键在视图中不感兴趣,但是,我的键对我的视图很有趣。

我对作为实现此目标的 System.Web.Mvc 命名空间的一部分的 <HiddenInput(DisplayValue:=True)> DataAnnotation 不感兴趣。我现在确实想让我的 EF 项目不受 MVC 库的影响。

我可以很容易地看到当前的 MVC 脚手架如何从传入的 ModelMetadata 参数(Microsoft.AspNet.Scaffolding.Core.Metadata.ModelMetadata 类型)迭代各种类型的 PropertyMetadata

但是,我如何跨越并获取这个 DatabaseGenerated 属性,我认为它源自 System.Data.Metadata.Edm 命名空间?