۴ سال و ۷ ماه قبل، شنبه ۲۸ دی ۱۳۹۸، ساعت ۱۱:۲۶
۴ سال و ۸ ماه قبل، سهشنبه ۲۴ دی ۱۳۹۸، ساعت ۲۲:۳۷
محدودیتی ندارد. هر چندبار که نیاز بود آنرا فراخوانی کنید:
<a asp-controller="User" asp-action="Edit" asp-route-id="@item.Id" asp-route-username="@item.UserName">Edit</a>
۴ سال و ۸ ماه قبل، دوشنبه ۲۳ دی ۱۳۹۸، ساعت ۲۲:۰۱
۴ سال و ۸ ماه قبل، دوشنبه ۲۳ دی ۱۳۹۸، ساعت ۲۱:۴۸
۴ سال و ۸ ماه قبل، دوشنبه ۲۳ دی ۱۳۹۸، ساعت ۱۵:۰۸
پاسخ هر دو سؤال: ارائهی راه حلهای متفاوت و آشنا شدن با روشهای دیگر هست.
۴ سال و ۸ ماه قبل، دوشنبه ۲۳ دی ۱۳۹۸، ساعت ۰۳:۳۳
تنظیم یک Sequence به صورت زیر
modelBuilder.HasSequence<int>("OrderNumbers", schema: "shared") .StartsAt(1000).IncrementsBy(5);
modelBuilder.Entity<PrimaryKeyWithSequence>(entity => { entity.Property(e => e.PrimaryKeyWithSequenceId).HasDefaultValueSql("NEXT VALUE FOR [PrimaryKeyWithSequenceSequence]"); });
CREATE TABLE PrimaryKeyWithSequence ( ID int PRIMARY KEY CLUSTERED DEFAULT (NEXT VALUE FOR [PrimaryKeyWithSequenceSequence]), Field1 nvarchar(300) NULL ) ;
اما برای حالت batch و مشخص بودن Id آنها، از همین روش با متد خاص ForSqlServerUseSequenceHiLo استفاده میشود:
modelbuilder.HasSequence<int>("DBSequenceHiLo") .StartsAt(1000).IncrementsBy(5); modelbuilder.ForSqlServerUseSequenceHiLo("DBSequenceHiLo");
CREATE SEQUENCE [dbo].[DBSequenceHiLo] AS [int] START WITH 1000 INCREMENT BY 5 MINVALUE -2147483648 MAXVALUE 2147483647 CACHE GO
using (var dataContext = new SampleDBContext()) { dataContext.Categories.Add(new Category() { CategoryName = "Clothing" }); dataContext.Categories.Add(new Category() { CategoryName = "Footwear" }); dataContext.Categories.Add(new Category() { CategoryName = "Accessories" }); dataContext.SaveChanges(); dataContext.Products.Add(new Product() { ProductName = "TShirts" }); dataContext.Products.Add(new Product() { ProductName = "Shirts" }); dataContext.Products.Add(new Product() { ProductName = "Causal Shoes" }); dataContext.SaveChanges(); }
و سپس کوئری insert اصلی، دارای idهای از پیش تعیین شدهای میشود که اینبار نیازی نیست تا یکی یکی رکوردها insert شوند و id بعدی محاسبه شود:
۴ سال و ۸ ماه قبل، یکشنبه ۲۲ دی ۱۳۹۸، ساعت ۲۳:۰۸
- این توضیح جهت اطلاع مرتبط با نگارش 3x است.
+ تفاوتی نمیکند و باید وجود داشته باشد. نمونه مثال Microsoft.AspNetCore.SpaServices.Extensions جدید به صورت زیر است:
using Microsoft.AspNetCore.SpaServices.AngularCli; using Microsoft.AspNetCore.SpaServices.VueCli; // ... namespace Test { public class Startup { // ... public void ConfigureServices(IServiceCollection services) { // ... // In production, the SPA files will be served from this directory services.AddSpaStaticFiles(configuration => { configuration.RootPath = "ClientApp/dist"; }); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // ... app.UseRouting(); app.UseEndpoints(endpoints => { // ... }); app.UseSpa(spa => { spa.Options.SourcePath = "ClientApp"; if (env.IsDevelopment()) { // spa.UseAngularCliServer(npmScript: "start"); // spa.UseVueCliServer(npmScript: "serve"); } }); } } }
۴ سال و ۸ ماه قبل، یکشنبه ۲۲ دی ۱۳۹۸، ساعت ۲۲:۵۸
- با نگارش 3.1 مشکلی مشاهده نشد (هیچ تغییری نداشته): net-core-31-final-poco-controller.zip
- حذف کردن ارثبری از کلاس پایه کنترلر، نیاز به یکسری تغییرات را هم در کدهای شما خواهد داشت که تعدادی از نکات آن، در انتهای بحث عنوان شدهاند؛ مانند تزریق ActionContext و بازگشت new ContentResult بجای return Content، چون این return Content از کلاس پایه کنترلر تامین میشود. اگر آنرا حذف کردید، باید جستجو کنید که return Content، ساده کنندهی چه چیزی در پشت صحنه هست و امثال این. این نوع نکات هم با مفاهیم ASP.NET MVC 5x یکی است: « ASP.NET MVC #6»
۴ سال و ۸ ماه قبل، شنبه ۲۱ دی ۱۳۹۸، ساعت ۱۸:۴۸
- در Redux فقط یک store سراسری وجود دارد که در برگیرندهی تمام اشیاء حالتهای کامپوننتهای مختلف برنامه است. علتش را هم در قسمت اول این سری مطالعه کنید که اصلا چرا به آن نیاز هست. علت انجام اینکارها چی هست. چه مشکلی وجود داشته که نیاز به store سراسری حس شده که بعد از آن مفاهیم مدیریت حالت سراسری ارائه شدهاند.
- در Mobx میتوان از چند store سراسری استفاده کرد. طراحی این storeها با خود شما است و برخلاف Redux که دسترسی مستقیمی به آن نیست، در اینجا میتوان مستقیما خواص observable آنرا تغییر داد و یا متدهایی را که به صورت action علامتگذاری شدهاند، فراخوانی کرد و store را به حالت دیگری تغییر داد. یعنی در کل طراحی شیءگرای store در MobX، کاملا به برنامه نویس واگذار شدهاست. میتوانید چندین store را به ازای اشیاء حالت کامپوننتهای مختلف ایجاد کنید و سپس آنها را به عنوان خاصیتهای عمومی store اصلی که توسط Provider به لایههای زرین ارسال میکنید، معرفی کنید.
۴ سال و ۸ ماه قبل، جمعه ۲۰ دی ۱۳۹۸، ساعت ۲۳:۰۲
مخزن کد این پروژه به ASP.NET Core 3.1 به روز رسانی شدهاست. کدهای خودتان را با آن انطباق دهید.