zoukankan      html  css  js  c++  java
  • x01.SportWeb: An Example for AspNetCore 2.0

    新的刚来到,旧的就忘掉。学习 AspNet Core 2.0,没有好的例子,是很痛苦的。《Pro ASP.NET Core MVC 2》中的 SportsStore 值得一看,不妨下载研究一下:

     准备

     1. 使用 Ubuntu 系统

     2. 安装 NetCore2.0

     3. 安装  VSCode

     4. 安装  Sqlite

     开始工作

     1. 新建文件夹 MvcLab,用 VSCode 打开,ALT + `,打开终端,输入命令 dotnet new sln 生成解决方案;然后输入如下命令,生成 x01.SportWeb 及其测试项目:

        mkdir x01.SportWeb 
      cd x01.SportWeb/
      dotnet new mvc --auth Individual
    
      cd ..
      mkdir x01.SportTest
      cd x01.SprotTest/
      dotnet new xunit
    
      cd ..
      dotnet sln add x01.SportWeb/x01.SportWeb.csproj
      dotnet sln add x01.SportTest/x01.SportTest.csproj    

    2. 对照 SportsStore 的例子,亦步亦趋即可。

      补充说明

    1. 采用 Ubuntu,取其跨平台;--auth Individual 选项,是为用户管理作准备。

    2.  x01.SportTest.csproj 中,需添加对 x01.SportWeb.csproj 的引用: 

      <ItemGroup>
        <ProjectReference Include="../x01.SportWeb/x01.SportWeb.csproj" />
      </ItemGroup>

     3. 在 ApplicationDbContext 添加 public DbSet<Product> Products {get; set:} 属性后,需运行如下命令:

    dotnet ef migrations add AddProduct

        更新 database 前需添加类 TempDbContextFactory 如下:

    using Microsoft.EntityFrameworkCore;
    using Microsoft.EntityFrameworkCore.Design;
    
    namespace x01.SportWeb.Data
    {
        public class TempDbContextFactory : IDesignTimeDbContextFactory<ApplicationDbContext>
        {
            public ApplicationDbContext CreateDbContext(string[] args)
            {
                var builder = new DbContextOptionsBuilder<ApplicationDbContext>();
                builder.UseSqlite("Data Source=app.db");
                return new ApplicationDbContext(builder.Options);
            }
        }
    }

      手工注释 Migrations/*_AddProduct.cs 中的 AddForeignKey 部分:

           // migrationBuilder.AddForeignKey(
                //     name: "FK_AspNetUserTokens_AspNetUsers_UserId",
                //     table: "AspNetUserTokens",
                //     column: "UserId",
                //     principalTable: "AspNetUsers",
                //     principalColumn: "Id",
                //     onDelete: ReferentialAction.Cascade);

    运行如下命令更新 database:

      dotnet ef database update

    其他《Pro ASP.NET Core MVC 2》书中语之甚详,不一一复叙也。

    关于 Angular

    1.《Angular 5 和 AspNet  Core 2》 也是不错的,学习到第六章的代码下载链接:x01.TestMakerFreeWeb

    2. 在 ubuntu => vscode 中运行效果图如下:

    需要安装 sqlite,npm, less 等,使用 sudo aptnpm install 即可。

  • 相关阅读:
    一句SQL查询没门课程都低于80分的学生信息
    ★查询给定字符串中,出现最多的字符和出现的次数
    Eclipse自动加载源码----Attach Java Source
    Eclipse 修改workspace默认的字符集为 utf-8
    浅谈 Spring的AOP的实现 -- 动态代理
    浅谈高并发的理解
    为什么使用单例模式?
    正排索引 与 倒排索引
    图片裁剪
    微信小程序开发笔记
  • 原文地址:https://www.cnblogs.com/china_x01/p/7795545.html
Copyright © 2011-2022 走看看