<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      古鎮東邪

      博客園 首頁 新隨筆 聯系 訂閱 管理

      適用Zero版本:ASP.NET Core & Angular 2+ (aspnet-zero-core-3.1.0)。

      該版本官方有兩個solution文件夾:Angular(前端) 和 aspnet-core(后臺服務)。

      在開始以下步驟之前需要能夠成功發布程序,對于后臺服務只要能運行即可,如有報錯可根據提示安裝需要的插件。Angular 則比較麻煩,裝的東西較多,官方建議用yarn,這個要下載,順藤摸瓜都安裝完即可。

      我沒有改解決方案名稱,仍用的默認solution的名稱MyCompanyName.AbpZeroTemplate,所以下面有的文件名跟官網的phonebook示例文檔有區別。

      步驟如下:

      1、后臺服務solution中的src/***.core/***CoreModule.cs文件中臨時禁用多租戶。

      [DependsOn(typeof(AbpZeroCoreModule))]
      public class PhoneBookCoreModule : AbpModule
      {
          public override void PreInitialize()
          {
              //some other code...
              
              //Enable this line to create a multi-tenant application.
              Configuration.MultiTenancy.IsEnabled = false;
              
              //some other code...        
          }
      }

      2、增加一個新的菜單項。前端Angular solution中的app\shared\layout\side-bar.component.ts (展開side-bar.component.html文件)在dashboard下面加入如下代碼

        new SideBarMenuItem("PhoneBook", null, "icon-notebook", "/app/main/phonebook")

      3、后臺solution中src/***.core/Localization/AbpZeroTemplate/AbpZeroTemplate.xml (默認的英文字體)中加入代碼。如有對應中文,可在對應的中文文件中加入中文名稱。其他語言中沒加的都默認用英文的。

      <text name="PhoneBook">Phone Book</text> 

      4、在前端Angular solution中加路由app\main\main-routing.module.ts  

      { path: 'dashboard', component: DashboardComponent, data: { permission: 'Pages.Tenant.Dashboard' } },

      { path: 'phonebook', component: PhoneBookComponent }

      此時phoneBookComponent報錯,先忽略不管。

      5、在Angular solution的app/main中新建一個phonebook文件夾并創建phonebookcocomponent.ts文件,代碼如下:

      import { Component, Injector } from '@angular/core';
      import { AppComponentBase } from '@shared/common/app-component-base';
      import { appModuleAnimation } from '@shared/animations/routerTransition';
      
      @Component({
          templateUrl: './phonebook.component.html',
          animations: [appModuleAnimation()]
      })
      export class PhoneBookComponent extends AppComponentBase {
      
          constructor(
              injector: Injector
          ) {
              super(injector);
          }
      
      }

      6、解決第四步的報錯問題。在main-routing.module.ts加入import代碼:

      import { PhoneBookComponent } from './phonebook/phonebook.component';

       

      7、在Angular solution的app/main/phonebook中新建 phonebook.component.html文件,代碼如下:

      <div [@routerTransition]>
          <div class="row margin-bottom-5">
              <div class="col-xs-12">
                  <div class="page-head">
                      <div class="page-title">
                          <h1>
                              <span>{{l("PhoneBook")}}</span>
                          </h1>
                      </div>
                  </div>
              </div>
          </div>
         
          <div class="portlet light margin-bottom-0">
              <div class="portlet-body">
                  
                  <p>PHONE BOOK CONTENT COMES HERE!</p>
      
              </div>
          </div>
      </div>

       

      8、在Angular solution的app/main/main.module.ts文件中添加下面有黃色標記的代碼。 

      import { NgModule } from '@angular/core';
      import { CommonModule } from '@angular/common';
      import { BrowserModule } from '@angular/platform-browser';
      import { FormsModule } from '@angular/forms';
      
      import { ModalModule, TabsModule, TooltipModule } from 'ng2-bootstrap';
      
      import { UtilsModule } from '@shared/utils/utils.module'
      import { AppCommonModule } from '@app/shared/common/app-common.module'
      
      import { MainRoutingModule } from './main-routing.module'
      import { MainComponent } from './main.component'
      import { DashboardComponent } from './dashboard/dashboard.component';
      import { PhoneBookComponent } from './phonebook/phonebook.component';
      
      @NgModule({
          imports: [
              BrowserModule,
              CommonModule,
              FormsModule,
      
              ModalModule.forRoot(),
              TabsModule.forRoot(),
              TooltipModule.forRoot(),
      
              UtilsModule,
              AppCommonModule,
      
              MainRoutingModule
          ],
          declarations: [
              MainComponent,
              DashboardComponent,
              PhoneBookComponent
          ]
      })
      export class MainModule { }

        保存后刷新前端頁面點擊phone book后可出來如下頁面。

       

      9、創建實體類person。在后臺solution中的.Core內新建文件夾People,然后在People文件夾內新建如下Person.cs類。

      using System.ComponentModel.DataAnnotations;
      using System.ComponentModel.DataAnnotations.Schema;
      using Abp.Domain.Entities.Auditing;
      
      namespace Acme.PhoneBook.People
      {
          [Table("PbPersons")]
          public class Person : FullAuditedEntity
          {
              public const int MaxNameLength = 32;
              public const int MaxSurnameLength = 32;
              public const int MaxEmailAddressLength = 255;
      
              [Required]
              [MaxLength(MaxNameLength)]
              public virtual string Name { get; set; }
      
              [Required]
              [MaxLength(MaxSurnameLength)]
              public virtual string Surname { get; set; }
      
              [MaxLength(MaxEmailAddressLength)]
              public virtual string EmailAddress { get; set; }
          }
      }

       

      10、在后臺solution中的.EntityFramework內的****DbContext.cs文件增加如下黃色標記代碼。

      public class ******DbContext : AbpZeroDbContext<Tenant, Role, User>
      {
          public virtual IDbSet<Person> Persons { get; set; }
              
          //...other code
      }

      11、用EntityFramework的code first遷移功能更新數據庫創建PdPersons表。

      在windows command prompt 命令行工具定位到.EntityFramework文件夾。輸入:“dotnet ef migrations add "Added_Persons_Table”并回車。

      這會在Migrations文件夾中增加一個***Added_Persons_Table.cs類。然后在命令行中輸入:“dotnet ef database update”命令,即可在數據庫中生成新表。

      我在執行這步的時候報錯了。提示C:\Program Files\dotnet\shared\Microsoft.NETCore.App 目錄里沒有1.1.0版本的。原來是我沒安裝command line版的

      .net core 1.1 sdk.官網直接下載即可下載地址:https://www.microsoft.com/net/core#windowscmd 。安裝好即可成功更新數據庫。

       

      12、為新創建的PdPersons表造點初始數據。

      在后臺solution的.EntityFramework空間內的Migrations/seed/host 內新建InitialPeopleCreator.cs類

       

       類代碼:

      using System.Linq;
      using Acme.PhoneBook.EntityFramework;
      using Acme.PhoneBook.People;
      
      namespace Acme.PhoneBook.Migrations.Seed.Host
      {
          public class InitialPeopleCreator
          {
              private readonly PhoneBookDbContext _context;
      
              public InitialPeopleCreator(PhoneBookDbContext context)
              {
                  _context = context;
              }
      
              public void Create()
              {
                  var douglas = _context.Persons.FirstOrDefault(p => p.EmailAddress == "douglas.adams@fortytwo.com");
                  if (douglas == null)
                  {
                      _context.Persons.Add(
                          new Person
                          {
                              Name = "Douglas",
                              Surname = "Adams",
                              EmailAddress = "douglas.adams@fortytwo.com"
                          });
                  }
      
                  var asimov = _context.Persons.FirstOrDefault(p => p.EmailAddress == "isaac.asimov@foundation.org");
                  if (asimov == null)
                  {
                      _context.Persons.Add(
                          new Person
                          {
                              Name = "Isaac",
                              Surname = "Asimov",
                              EmailAddress = "isaac.asimov@foundation.org"
                          });
                  }
              }
          }
      }

       

       

      13、在.EntityFramework空間內的Migrations/seed/host 內的InitialHostDbBuilder.cs類里新增如下黃色標記代碼。

      public class InitialHostDbBuilder
      {
          //existing codes...
          
          public void Create()
          {
              //existing code...
              new InitialPeopleCreator(_context).Create();
      
              _context.SaveChanges();
          }
      }

       然后在命令行中執行代碼:“dotnet ef database update ” 即可。查看PdPersons表里已有數據。

      14、創建person應用程序服務-新建一個接口類。

       

       

       未完待續。。。

      
      
      posted on 2017-02-25 21:28  古鎮東邪  閱讀(1477)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品久久一区二区三区| 疯狂做受XXXX高潮国产| 欧美极品色午夜在线视频 | 女人香蕉久久毛毛片精品| 成年女人片免费视频播放A| 国产一区二区三区四区色| 免费观看一级欧美大| 国产午夜亚洲精品福利| 亚洲国产码专区在线观看| 一区二区三区四区精品视频| 久久亚洲精品11p| 久久国产精品99久久蜜臀| 开心色怡人综合网站| 亚洲av日韩av永久无码电影| 国产成人亚洲精品狼色在线| av深夜免费在线观看| 日韩视频一区二区三区视频| 人人妻人人澡人人爽人人精品av| 夜夜爽77777妓女免费看| 朔州市| 深田えいみ禁欲后被隔壁人妻 | 18禁极品一区二区三区| 中文午夜乱理片无码| 久久不见久久见免费影院www日本 亚洲综合精品一区二区三区 | 亚洲国产午夜福利精品| 少妇午夜福利一区二区三区 | 新乡市| 91亚洲国产成人久久蜜臀| 久久亚洲精品情侣| 成人3D动漫一区二区三区| 日韩精品一区二区高清视频| 亚洲人成电影在线天堂色| 国产成人99亚洲综合精品| 蜜桃伦理一区二区三区| 免费人成网站免费看视频| 亚洲激情av一区二区三区| 一本大道久久香蕉成人网| 亚洲中文久久久久久精品国产| 激情综合色综合久久丁香| 亚洲伊人久久综合影院| 抚顺市|