问题标签 [asp.net-core-scaffolding]

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 投票
1 回答
1611 浏览

c# - 相同属性的外键已存在

我有表 1 和表 2。

Table1 有一个foreignKey指向 Table2 的主键。这可能是一个糟糕的设计,但我无法更改它,因为它已经过时了。

现在我想首先使用带有代码的 EF,并尝试通过以下命令为其生成模型和 DbContext 类:

并得到以下错误:

无法将外键 {'ForeignKeyId'} 添加到实体类型“TABLENAME”,因为实体类型“TABLENAME”上已存在相同属性的外键,并且还针对“FOREIGNKEY_PrimaryTable”上的键 {'FOREIGNKEY'}。

有没有办法克服这个错误?

0 投票
10 回答
9486 浏览

c# - 运行所选代码生成器时出错:

我已经在我的 Windows 10 上安装了 VS 2019。创建了 ASP.net Core Web Project -> Selected API。当我尝试生成引用模型的控制器并创建上下文类时,它没有生成控制器类,但它给了我以下错误:

错误,运行所选代码生成器时出错

'未处理的异常。System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.VisualStudio.Web.CodeGeneration.Utils,版本=3.1.2.0,文化=中性,PublicKeyToken=adb9793829ddae60”。该系统找不到指定的文件。文件名:Microsoft.VisualStudio.Web.CodeGeneration.Design.Program.Main(String[] args) 中的“Microsoft.VisualStudio.Web.CodeGeneration.Utils, Version=3.1.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60”

0 投票
1 回答
30 浏览

asp.net-core - 以后的更新如何影响脚手架文件?

我参考了这篇微软文章

Microsoft.AspNetCore.Identity.UI当我搭建它以获取 Razor Pages 的源代码时,我有3.1.1。我对一些 Razor 页面进行了更改。

该软件包现在在 3.1.4 上。我可以更新软件包吗?如果我这样做,它会覆盖我的更改吗?

0 投票
1 回答
77 浏览

c# - ASP.NET Core Entity Framework 代码到数据库的脚手架无法识别 Id 属性或 [Key] 注释

我正在尝试为我的Ticket班级搭建一个剃刀页面集,当 Entity Framework 尝试创建数据库时出现错误:

这显示了我旁边的错误

我的理解是,如果您有一个属性“Id”,它将使用它,并且如果您设置 [Key] 注释,它将专门告诉实体框架使用该属性。这两样东西我都有,那又是什么呢?

0 投票
4 回答
4627 浏览

asp.net-mvc-routing - Asp.Net Core Scaffolded 'Register' 和 'Login' 重定向在 Azure AppService 中不起作用

Asp.Net Core 3.0 应用程序。我正在使用实体框架身份个人身份验证,并在登录页面和注册页面中搭建了脚手架。我在 Azure 中有一个 SQL 数据库。

当我在 localhost 上运行时,注册和登录工作正常。我已经确认新用户存储在 DB Users 表中。

但是当我部署到 Azure AppService时,单击注册或登录按钮时出现 404 page not found 错误。

我努力了:

  • 扩大到付费计划并使用 GoDaddy 和 Azure 为我的应用服务实施 CNAME,以.azurewebsites.net从 url中删除

  • 添加asp-area到我的cshtmlasp-page中的元素。<button>

  • 在应用服务中打开 Azure 身份验证和授权并添加http://www.myapp.com为重定向 url。

  • 在我的 Azure DB 服务器防火墙设置中将我的所有 AppService 出站 IP 列入白名单。

  • 我曾尝试在 Chrome 中使用开发控制台来查看发生了什么,但我看不到任何有用的东西。

  • 拔掉了我的一些头发...

我应该在哪里看的任何想法?

附加信息:

应用设置.json

数据库上下文:

注册cshtml:

登录cshtml:

错误:如果我从主页导航到https://www.myapp.com/en/Identity/Account/Login ,页面加载正常。但是当我单击登录/注册按钮时,重定向失败并显示以下错误。

错误截图

中间件:

数据库:

单击注册时数据库中没有创建用户记录,只是错误页面

更新:

我在整个代码库中搜索了“localhost”,但在 IIS 设置之外的任何地方都没有找到它。

更新:

我将 nslookup 中的服务器和虚拟入站 IP 地址添加到数据库服务器防火墙白名单中。

更新:

在 Firefox 上,我没有收到错误消息。只是一个空白的白页。

在 Edge 上,我收到与找不到页面相同的 404 错误。

更新:

在我的 startup.cs 服务中,我true尝试falseRequireConfirmedAccount

更新:

确认我的 cshtml 属性的 Build Action 设置为 Content。

更新:

添加TXT | 阿苏德| 应用验证 ID到我在 GoDaddy 中的 DNS 设置。

添加TXT | @ | mywebsite.azurewebsites.net到我在 GoDaddy 中的 DNS 设置。

添加 mywebsite.com 作为分配的自定义域并在 azure 门户中对其进行验证。

更新:

我在 MSDN 论坛上被告知这可能是因为提交按钮的 http POST 不起作用,我应该将其更改为锚<a>标记或Input类型按钮。

更改 html 很好,但我想弄清楚这对我的 Razor 页面重定向代码意味着什么?如果有人能指出我正确的方向,那就太好了。注册页面的现有重定向代码如下所示。

我从一些研究中猜测我的新 cshtml 将如下所示:

更新:

我用我的方法注释掉了Use.HstsprodConfigurestartup.cs

更新:

我尝试returnUrlOnPostAsync我的方法中对a 进行硬编码,login.cshtml.cs而不是使用returnUrl ??= Url.Content("~/");相同的 404 错误……所以我不确定重定向到同一登录页面的身份服务实际上在哪里触发了重定向。显然不在我的 OnPostAsync 中,因为它应该尝试访问我硬编码的 url,即~/myapp.com/en/Features/Features. 啊。这让我很头疼。

更新:

我尝试替换return LocalRedirect(returnUrl);为, return LocalRedirect(Url.Action("Login", "Identity/Account"));但它在 localhost 上不起作用,所以我没有在 prod 中尝试过。它在说

更新:

returnUrl ??= Url.Content("~/");我用运算符 for替换了空合并运算=符 forreturnUrl = Url.Content("~/");

更新:

确认默认情况下我的AddControllersWithViewsAddRazorPages全局实施授权,并且我的登录和注册页面模型已 [AllowAnonymous]指定。

更新:

我已经对我的OnPostAsync方法和我的ConfigureServices<IdentityOptions>. 我认为默认的 IdentityOptions 密码要求掩盖了真正的问题。

我仍然可以使用我在搭建脚手架之前创建的用户在 localhost 上正常登录,但我无法使用该用户登录App Service。但现在在 AppService 上,我在该预脚手架用户的 UI 上收到“无效登录尝试”错误。控制台中没有错误。

所以基本上我仍然无法在 AppService 上注册或登录,但不知何故 2 周后,我可以尝试诊断的 UI 上出现错误消息,感觉就像是进步了!

我将对此进行调查,因为它也发生在我在 localhost 中注册的新用户身上,所以无论如何都需要先解决它。如果它没有帮助,我将研究 CORS 作为下一站以找到 AppService 解决方案。我也向微软伸出了手,手指交叉。谢谢各位。

更新:现在已解决。老实说,我不知道怎么做。在过去的几周里,我做了很多改变,一一撤消我的所有提交,以找出修复的内容太痛苦了。当痛苦的记忆在几周内消退时,我会回来尝试再次打破它以找出它是什么。到时我会发布更新。

0 投票
1 回答
41 浏览

entity-framework - Assp.net Core exeption('无效的列名'ClassRoomClassId')

我对 ASP.NET Core 脚手架有疑问。我刚刚在一个简单的关系模型上应用了脚手架,我得到了这个 SqlException。

所有我有两个模型

课堂

学生

执行Students/Index时出现异常。

我没有名为“ClassRoomClassId”的列!
会有什么问题?

0 投票
1 回答
84 浏览

data-annotations - 使用 efcore .netcore 将关键数据注释分配给我的 razor Web 应用程序中的单独部分类时不起作用

我正在 razor web 应用程序 (asp.netcore) 中开发一个应用程序,并使用 efcore 搭建 db 表。

我在我的 OnlineForms 数据表上执行了一个 db-scaffold,它创建了我的 OnlineForms.cs 类。当我直接将 [key] 属性放在此类中的 formid 属性之上时,我可以毫无问题地保存到数据表中。

但是当我通过[ModelMetadataType]属性将[key]数据注释移动到引用OnlineForms的部分类OnlineFormsValidation中时,我尝试保存数据;我收到错误消息:“实体类型 'OnlineForm' 需要定义主键。”

必需的注释在 OnlineFormsValidation 类中正常工作,但 [Key] 注释不能。

先感谢您。任何帮助将不胜感激。

OnlineForm.cs:

OnlineFormValidation.cs:

0 投票
2 回答
4807 浏览

c# - dotnet aspnet-codegenerator 工具未找到 Microsoft.VisualStudio.Web.CodeGeneration.Design

dotnet new mvc --name test-project我刚刚使用( )创建了一个 MVC 应用程序netcoreapp3.1,没有任何类型的数据库访问和身份,我想手动添加以进行自定义。然后我添加了一些包以使用该dotnet aspnet-codegenerator工具。我的.csproj样子是这样的:

如您所见,Microsoft.VisualStudio.Web.CodeGeneration.Design是列表中的第一个。但是,当我尝试从该dotnet aspnet-codegenerator工具运行任何脚手架(例如:)时dotnet aspnet-codegenerator identity -h,我收到以下消息:

No code generators are available in this project.Add Microsoft.VisualStudio.Web.CodeGeneration.Design package to the project as a NuGet package reference.

即使我使用标志指定.csproj文件,我仍然会收到相同的消息。-p在进行一些研究时,我在他们的仓库中发现了这个问题,但这是另一回事:OP 试图使用 3.1 脚手架版本将脚手架添加到 .NET Core App 3.0。

我在 Xubuntu 20.04 上使用 dotnet 3.1.401。

有什么想法吗?先感谢您。

编辑 1 有人建议这将接近我们在这里所拥有的,但问题是:我知道它的作用,并且我实际上添加了该文章中建议的“全局工具”。问题是aspnet-codegenerator没有检测到我已经将它需要的库添加到.csproj文件中。

编辑 1

显然,有几个人也面临这个问题,所以,我在他们的回购中提出了一个问题

0 投票
0 回答
1314 浏览

postgresql - Scaffold-DbContext:在 .NetCore 中从 postgres 数据库生成上下文时消除下划线

我使用 DB First 方法将最新的 EFCore 版本与 Postgres 数据库一起使用。从现有 Postgres 数据库生成 Dbcontext 时,它会从表名和列名中消除下划线 ('_')。

数据库表结构

生成的 DbContext 模型结构

我正在使用以下命令生成 DbContext:

Scaffold-DbContext "Server=localhost;Port=5432;User Id=postgres;Password=mypassword;Database=SAMPLE_db;" Npgsql.EntityFrameworkCore.PostgreSQL -o DbModels -Schemas "local_dev"

0 投票
1 回答
185 浏览

c# - VS 2019 中 ASP.NET Core Razor 脚手架模板的位置是什么

我的意图是为ASP.NET Core 3.1自定义默认 Razor 模板。为此,我将向默认的 T4 Razor 模板添加自定义 HTML,这样我就不必一次又一次地更新每个生成的视图。但我无法找到这些模板的确切位置。

我已经尝试了以下链接并用谷歌搜索了它,但我无法找到 ASP.NET Core 3.1 的 VS 2019 模板的位置-相反我找到了 VS 2015/2017 的 ASP.NET MVC4/5 等.

如果有人能告诉我适用于 VS 2019 的 ASP.NET Core 3.1 的 T4 Razor 模板的位置,那将是一个很大的帮助

一些链接:

asp-net-core-custom-scaffolding-visual-studio-2019

asp-net-core-scaffolding-generators

asp-net-use-razor-to-generate-html-for-templates-in-a-single-page-app