Anduin Xue

let today = new Beginning();

All Posts

Support multi-tenant in pure Entity Framework Core

Multi-tenant requires many features because the data can be separated by different tenants. So when you are accessing the database, you don't need to worry that your operation will affect other tenants. Multi-tenancy is the ASP.NET boilerplate's most important feature and works perfectly with Domain-driven design. But how can we implement the multitenant feature with only pure Entity Framework  …

ASP.NET Core C# Entity Framework Multi-tenant

Auto update database for ASP.NET Core with Entity Framework

If your ASP.NET Core project is connecting to your database via entity framework, you can't be unfamiliar with the script: dotnet ef database update. Without executing the script your database is not the latest and this may cause some issues. Traditionally we update the database every time we start our app or publish our app. But we may forget this process and it costs us work. How can we  …

ASP.NET Core C# Entity Framework SQL Server

Limit ASP.NET Core request frequency by IP address

By default, the user can request an ASP.NET Core web server unlimitedly. The user may request our web server very frequently and submit lots of spam data. Also, too frequent requests may be a terrible attack which may cost our service down and lots of money. So how can we group the requests by their IP address, limit the frequency of the user requests, and return an error message? There's  …


How to run async method in C# synchronous method

In some situations, we may need to run an async method and get its result. But we can't access the await keyword. In the constructor method. When you are implementing an interface sync method. When you are implementing an abstract class sync method. I got a solution to unwrap the async method and call it in the synchronous method. First, put the following code anywhere you like: using  …

C# .NET Core Async

Consolidate all Entity-Framework database migrations to one migration

Why do we need to do that? In case you ruined your code or you have too many migrations and caused your editor slow, you may want to reset all migrations. However, deleting all migrations directly in your code will cause database update fail. So I will talk about my solution about how to consolidate all migrations without deleting any data. The following steps only suitable for code-first EF  …

ASP.NET Core C# .NET Core Entity Framework SQL Server

Upgrade existing class library to .NET Core 3.0

When we are upgrading our existing class library to the latest .NET Core, like this: <TargetFramework>netcoreapp3.0</TargetFramework> On doing so, you may get the following warning: C:\Program Files\dotnet\sdk\3.0.000\Sdks\Microsoft.NET.Sdk\targetsMicrosoft.NET.Sdk.DefaultItems.targets(149,5): warning NETSDK1080: A PackageReference to Microsoft.AspNetCore.App is not necessary  …

C# class library .NET Core

Using IIS and web.config to support large file upload

When you try and upload a large file (over the size limit in IIS) you will see an error message that looks something like: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. By default, IIS web server allows for limited file size to be uploaded to the web  …

IIS web.config ASP.NET ASP.NET Core

How to connect Azure Media Player statistic info to Power BI embed

Architect This User Story requires the following steps: Get video playback data. Submit the data to global Azure AI service via JavaScript. Verify that we can see the video playback data in the Azure portal. Get the data from global Azure AI service to Power BI. Use Power BI Embed to display the data in our web page. Add a filter to your embed dashboard to only display current tenant  …

Power BI Azure Media Player Application Insights Azure

How to fix SQL Server database suspect status

In case our SQL Server database can't access, and telling you that it was in suspect status: Common reasons for the state are: The system cannot open the device where the data or log file is located The specified file was not found during the creation or opening of the physical device SQL Server crashes in the middle of the transaction Unable to access data or log files when going online  …