咨询公司网站建设,网站建设推广公司需要哪些岗位,wordpress 安装 空白页,怎么用电脑做网站服务器Scaffolding Template Intro 我们知道在Asp.Net MVC中#xff0c;如果你使用的EF的DBContext的话#xff0c;你可以在vs中通过右键解决方案-添加控制器-添加包含视图的控制器#xff0c;然后vs会根据你选择的Model自动生成相应的CURD的控制器和View#xff0c;非常便利如果你使用的EF的DBContext的话你可以在vs中通过右键解决方案-添加控制器-添加包含视图的控制器然后vs会根据你选择的Model自动生成相应的CURD的控制器和View非常便利这种就叫做 ASP.NET Scaffolding Template之前雪燕大大有过一篇介绍有兴趣可以看看【传送门】 大家知道近期Asp.Net Core2.0发布了微软也推出了Razor Page来作为默认的Asp.Net Core Web项目但一开始并没有提供Scaffolding Template后简称ST功能使我们每次对于一个Model需要进行4-5个页面和PageModel的编写代码量比Asp.Net MVC多了不少好在ST及时出现不过这次并没有结合到VS中我们需要通过添加一个生成包及CMD命令来完成虽然复杂了点但至少编码量少了Let’s do it! Hello Scaffolding Razor Page Step 1 : 创建Razor Page 项目 Step 2 : 创建一个Model在这里我们创建一个Blog实体类 public class Blog
{ public int BlogId { get; set; } public string Title { get; set; } public string Author { get; set; } public DateTime CreatedDate { get; set; }
} Step 3 : 创建DbContext public class BlogDbContext : DbContext
{ public BlogDbContext(DbContextOptionsBlogDbContext options) : base(options){} public DbSetBlog Blogs { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder){modelBuilder.EntityBlog().ToTable(Blog);}
} Step 4 : 配置连接字符串并把这个DbContext通过DI的方式注册到项目容器中 public void ConfigureServices(IServiceCollection services)
{services.AddDbContextBlogDbContext(options options.UseSqlServer(Configuration.GetConnectionString(BlogDbContext)));services.AddMvc();
} 记得在配置文件appsettings.json中加入connectString: { ConnectionStrings: { MovieContext: Server(localdb)\\mssqllocaldb;DatabaseDemoDb;Trusted_ConnectionTrue;MultipleActiveResultSetstrue}
} Step 5 : 安装CodeGeneration package,工具-Nuget包管理器-程序包管理控制台 Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design -Version 2.0.0 Step 6 : 添加数据迁移-更新到数据库 Add-Migration Initial
Update-Database [这里一定要做下迁移否则生成代码会不成功我估计生成代码会去读取数据库] Step 7 打开终端CMD or Powershell 先移步到项目目录Program.cs和Startup.cs这个目录 我的是E:\project\aspnet\Demos\WebApplication4\WebApplication4 然后输入以下命令 dotnet aspnet-codegenerator razorpage -m Blog -dc BlogDbContext -udl -outDir Pages\Blogs –referenceScriptLibraries ok如果顺利你就能看到如下提示 我们可以看到它自动创建了相应的View和PageModel。 虽然没有MVC那么便利但至少也节约了我们不少时间。 Issues 自动生成的DbContext的DbSet名字不正确 我们看下Create.cshtml.cs代码其中一段 public async TaskIActionResult OnPostAsync()
{ if (!ModelState.IsValid){ return Page();}_context.Blog.Add(Blog); await _context.SaveChangesAsync(); return RedirectToPage(./Index);
} 可以看到 它使用了Blog作为实体类的集合名了但在Step 3中我使用的是Blogs这应该是个bug想提交的但没有找到相应的项目。 写在最后 后天就是伟大的祖国生日了大家节日快乐明天去HK迪士尼好期待嘿嘿。 后面我会把用Razor Page遇到的问题总结放上来非常看好它相信会越来越火的。 PSasp.net core QQ学习群376248054 通关密码cnblogs无密码一律不通过 原文地址http://www.cnblogs.com/inday/p/scaffolding-template-on-asp-net-core-razor-page.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com