استفاده از scaffold در پروژه #C برای ایجاد صفحات CRUD

2/18/2023 MVC
381

بعد از ایجاد پروژه در Net. لازم بود برای من تا بتوانم از دستورات commandline برای مدیریت پروژه razor  pageاستفاده کنم، بعد از جرای پروژه دو نوع دستور ره اجرا خواهم کرد دستوراتی که فقط لازم است یک بار اجرا کنم و دستوراتی که در هر پروژه اجرا میکنم 

برای ایجاد پروژه در VS code من برای کل پروژه از کد های لینک صفحه زیر استفاده میکنم.

code generator 

create project

 

dotnet tool install -g dotnet-aspnet-codegenerator
dotnet tool install --global dotnet-ef

دو دستور بالا به صورت عمومی دو پکیج را نصب مبکند و در صورتی که یک بار نصب کنید برای دیگر پروژه ها نیاز نیست تا دوباره نصب کنبد.

برای ایجاد پروژه ها repo و models از نوع class library هستند پس برای ایجاد آنها دستور 

Dotnet new classlib

استفاده میکنم و برای ایجاد پروژه وب :

dotnet new webapp

dotnet restore

در پروژه model این پکیجها را نصب میکنم 

dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
dotnet add package Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore
dotnet add Microsoft.AspNetCore.Identity.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools

البته یاد آوری کنم در پروژه ها از sqlserver استفاده میکنم به همین دلیل پکیج Sqlserver اضافه کردم 

خود به صورت موازی پروژ ها را ه sln پروژه متصل میکنیم و به صورت سری model  را یه repo  و  repo را به  web وصل میکنیم 

برای اضافه کردن همه پروژه ها به sln کد زیر استفاده کردم

dotnet sln todo.sln add **/*.csproj

برای اضافه کردن پروژه ها به صورت سری به هم از کد زیر استفاده میکنم 

dotnet add reference ../Todo_Models/Todo_Models.csproj

در کد بالا من در پروژه repo هستم و پروژه model  را به آن رفرنس دادم

و اگر در root پروژه باشم  برای ارجاع از کد بالا با تغییر کوچکی استفاده خواهم کرد به صورت زیر خواهد بود

dotnet add Todo_Repo/todo_Repo.scproj reference ../Todo_Models/Todo_Models.csproj

و اگر در root پروژه هستید ازاین نمونه استفاده کنید(نمونه کد سایت ماکروسافت)

dotnet add app/app.csproj reference lib/lib.csproj

الیته میتوانید این کد را به صورت دستی به فایل پروژه های که قرار هست رفرنس را دریافت کند اضافه کنید 

  <ItemGroup>
    <ProjectReference Include="..\Dach_Models\Dach_Models.csproj" />
  </ItemGroup>

 

با استفاده از دستور کد زیر لیست تمام فایلخایی  که میتوانید جهت Identity استفاده کنید را میبیند

dotnet aspnet-codegenerator identity -lf
Account._StatusMessage
Account.AccessDenied
Account.ConfirmEmail
Account.ConfirmEmailChange
Account.ExternalLogin
Account.ForgotPassword
Account.ForgotPasswordConfirmation
Account.Lockout
Account.Login
Account.LoginWith2fa
Account.LoginWithRecoveryCode
Account.Logout
Account.Manage._Layout
Account.Manage._ManageNav
Account.Manage._StatusMessage
Account.Manage.ChangePassword
Account.Manage.DeletePersonalData
Account.Manage.Disable2fa
Account.Manage.DownloadPersonalData
Account.Manage.Email
Account.Manage.EnableAuthenticator
Account.Manage.ExternalLogins
Account.Manage.GenerateRecoveryCodes
Account.Manage.Index
Account.Manage.PersonalData
Account.Manage.ResetAuthenticator
Account.Manage.SetPassword
Account.Manage.ShowRecoveryCodes
Account.Manage.TwoFactorAuthentication
Account.Register
Account.RegisterConfirmation
Account.ResendEmailConfirmation
Account.ResetPassword
Account.ResetPasswordConfirmation

 

 

dotnet add package  Microsoft.AspNetCore.Identity.UI
dotnet add package Microsoft.EntityFrameworkCore.Design

 

dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.AspNetCore.Identity.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer


Microsoft.EntityFrameworkCore.Tools
Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore

 

dotnet aspnet-codegenerator identity -dc MyProject.Models.MyProjectContext --files "Account.Register;Account.Login;Account.Logout;Account.RegisterConfirmation"

 

 

 

add razor file in admin area with CRUD

dotnet aspnet-codegenerator razorpage -m Post -dc Devex.Model.DevexContext -udl -outDir Areas/admin/Pages/posts --referenceScriptLibraries