国产精品成人免费视频_91丝袜美腿美女视频网站_国产一区二区三区在线看_亚洲欧美另类中文字幕_在线电影av不卡网址_国产视频丨精品|在线观看_日韩一区二区三区国产_国产欧美va欧美va香蕉在线_热re91久久精品国99热蜜臀_亚洲第一精品电影_久久九九亚洲综合_国产成人综合精品_97视频在线观看网址_精品视频久久久久久_日韩av片免费在线观看_久久精品国产99国产精品澳门

聚集網(jujiwang.com) - 收錄免費分類目錄信息軟文發布網址提交
免費加入

ASP.NET中使用Entity Framework Core進行數據訪問:建立數據庫連接 (asp.net mvc)

文章編號:11516時間:2024-10-01人氣:


Framework

Entity Framework Core(EF Core)是一個輕量級、可擴展的框架,用于在 .NET 應用程序中進行數據訪問。本文將指導您如何在 ASP.NET Core MVC 項目中使用 EF Core 建立數據庫連接。

先決條件

  • 安裝 .NET Core SDK 3.1 或更高版本
  • 安裝 Visual Studio 2019 或更高版本
  • 創建一個新的 ASP.NET Core MVC 項目

安裝 EF Core

通過 NuGet 包管理器安裝 EF Core 包:

```Install-Package Microsoft.EntityFrameworkCore --version 3.1.21```

創建數據模型

創建一個名為 Product 的類來表示數據庫中的產品實體:

```csharppublic class Product{public int ProductId { get; set; }public string Name { get; set; }public decimal Price { get; set; }}```

添加數據庫上下文

創建名為 ApplicationDbContext 的派生自 DbContext 的類。該類將充當與數據庫交互的橋梁:

```csharppublic class ApplicationDbContext : DbContext{public ApplicationDbContext(DbContextOptions options) : base(options){}public DbSet Products { get; set; }}```

配置連接字符串

appsettings.json 配置文件中添加連接字符串,如下所示:

```json{"ConnectionStrings": {"DefaultConnection": "Server=localhost;Database=MyDatabase;Trusted_Connection=True;"}}```確保將 Server Database Trusted_Connection 值更新為您的數據庫設置。

注入數據庫上下文

Startup.cs 文件的 ConfigureServices 方法中,通過 AddDbContext 方法將 ApplicationDbContext 服務注入到依賴關系注入容器中:

```csharppublic void ConfigureServices(IServiceCollection services){services.AddDbContext (options =>options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));}```

訪問數據

在控制器中,您可以使用注入的 ApplicationDbContext 服務來查詢和更新數據庫。例如,以下代碼獲取所有產品:

```csharppublic class ProductsController : Controller{private readonly ApplicationDbContext _context;public ProductsController(ApplicationDbContext context) {_context = context;}public IActionResult Index(){var products = _context.Products.ToList();return View(products);}}```

故障排除

  • 確保已正確配置連接字符串。
  • 檢查項目中是否引用了正確的 EF Core 版本。
  • 嘗試清理并重新生成解決方案。
  • 參考 EF Core 文檔和官方示例。

結論

通過遵循這些步驟,您可以在 ASP.NET Core MVC 應用程序中使用 Entity Framework Core 建立數據庫連接。這將使您能夠輕松訪問和操作數據庫數據。


ASP.NET MVC與WebForm的區別

MVC縱向切割了開發過程中的代碼,從服務器到瀏覽器層層分離,層次之間耦合度很低,因為它是順著底層的開發脈絡進行封裝,所以有利于開發者對整個程序過程流轉的理解。 但是MVC有一個非常大的缺點,這個缺點是和整個軟件發展思路相背離的,那就是它無法封裝、無法封裝所以無法被重用。 有誰看到過mvc下面的組件?有的只是一個個現成的案例,然后拿來修改。 因為一個組件肯定牽涉到控制和顯示,但是mvc的開發這兩個層次是分離的。 MVC只適合輕量級的開發,桌面開發是極少用到mvc模式的。 然而web開發恰恰就是輕量級,至今所有的web開發都是輕量級的,因為網絡硬件條件的限制,不需要也無法做到非常復雜的邏輯。 這也是MVC非常非常適合web開發的原因。 WebForm是微軟前面一套web開發的機制。 它橫向切割了代碼,控制和顯示是封裝在一起的。 它從開發者思維邏輯上而不是實際情況上對代碼進行封裝,開發webform容易上手的原因也就在此了,但這個不利于開發者對底層程序流轉機制的理解。 WebForm中view和controller是放在一起的,WebForm一出現后,隨之而來的是大量的組件誕生,這是mvc模式下看不到的。 微軟的經驗之一是硬件發展很迅速。 代碼的封裝是靠犧牲運行效率來提高開發效率,犧牲的運行效率通過提高硬件性能來解決。 但微軟在webform上犯了經驗主義的錯誤,這個經驗不適合網絡硬件,網絡硬件要考慮兼容性而且是國家的基礎設施,更新的靈活性遠比單機要差。 大量的組件因為硬件的瓶頸無法給WebForm帶來什么優勢。 在發展了幾年webform后,微軟覺得這樣下去不行,等到網絡硬件發展起來不知道到猴年馬月了,所以就抄了一下成熟的mvc,通過Entity Framework做數據庫和對象的映射,很明顯,它是為了充當mvc中那個Model。 通過mvc來控制和展示。 webform生產關系是比mvc先進的,但是它不適合現在的網絡設施生產力,如果要適合說不定要10年后。 webform和mvc很好的印證了生產關系必須適合生產力,即使強大如微軟也無法改變客觀規律。

在mvc中創建webapi控制器使用entityframew

1、首先,在數據庫中創建一張數據表,表名為Customer。 2、其次,打開VisualStudio,新建項目。 選擇,命名為WebApi。 接著要創建一個WebAPI,在模板中選擇WebAPI,點擊確定。 3、然后,要添加一個類。 右鍵點擊這個webapi項目,添加一個。 添加EFDesignerfromdatabase,點擊下一步。 在配置窗口中添加新連接,輸入服務器名稱,選擇數據庫,點擊確定。 點擊下一步,選擇要關聯的數據表。 點擊完成。 4、最后,要為WepApi添加控制器了。 右鍵選擇controllers文件夾。 選擇MVC5Controllerwithviews,usingEntityFramework。 點擊添加。 選擇數據模型類Customer,選擇Datacontext類文件,本例中為SystemTestEntity。 設置控制器名稱為CustomersController,點擊添加。 上述操作完成后,會自動生成。

Entity Framework + mvc3 的 優勢有哪些? 有什么好處?。?求高人詳解。。

Entity Framework現在發展很快,很多特性都在變,包括最新支持的CodeFirst你可以不需要定義數據庫而是先定義實體類,通過實體類反向生成數據庫腳本代碼。 跟Linq2Sql一樣支持Linq語法,不過比Linq2Sql好是支持Many2Many還有隔離數據庫映射。 不過這種ORM系統都比較重,如果不需要很復雜的業務可以考慮輕量級ORM,性能在5到20倍左右。 MVC是因為這個模式比較符合現代Web應用程序的開發模式,可以很好的集成json、ajax、輕量級頁面、數據服務、html5等等,也容易分離項目實現,不過跟以往的 WebForm差別太大,新手用不太來。

通俗易懂,什么是.NET Core以及.NET Core能做什么

我們都知道 Core是一個可以用來構建現代、可伸縮和高性能的跨平臺軟件應用程序的通用開發框架。 可用于為Windows、linux和MacOS構建軟件應用程序。 與其他軟件框架不同, Core是最通用的框架,可用于構建各種軟件,包括Web應用程序、移動應用程序、桌面應用程序、云服務、微服務、API、 游戲 和物聯網應用程序。 與其他框架不同, Core并不局限于單一的編程語言,它支持C#、、F#、XAML和TypeScript。 這些編程語言都是開源的,由獨立的社區管理。

Core提供了最先進、最成熟和最廣泛的類庫、公共API、多語言支持和工具。 借助于Visual Studio 2019和Visual Studio Code 這些最先進和最現代的開發工具,使得 Core成為開發人員最高效的平臺之一。

Core的 歷史

Core是由Microsoft開發,目前在 Foundation(一個非營利的開源組織)下進行管理。 Core是用C#和C++編寫的,并采用MIT協議作為開源協議。 第一個版本的 Core 1.0是在2016年發布的,功能有限。 NET Core 2.0于2017年8月14日發布。 在這個版本中發布的兩個核心框架是 Core2.0和 Entity Framework Core 2.0。 下一個穩定版本 Core 2.1和2.2于2018年5月和12月發布。 Core的當前版本為3.0.0,并且在2019年5月6日發布了第5個預覽版。

下表總結了 Core的主要里程碑:

版本發布日期關鍵特征/產品 Core 1.06/27/2016VisualStudio 2015 Update 3支持的 Core的初始版本。 Core 1.1.13/7/ Core Tools 1.0受VisualStudio 2017支持 Core 2.08/14/2017VisualStudio 2017 15.3, 2.0,實體框架 Core 2.15/30/ Core 2.1,EF Core Core 2.212/4/ Core 2.2,EF Core Core 3.0預覽33/6/2019通過VisualStudio2019支持 Core 3.0、EF Core3.0、UWP、Windows窗體、WPF。

Core的特點

Core的主要特性包括開源、跨平臺、現代、靈活、輕量級、快速、友好、可共享,以及為未來的軟件開發而構建的。

Core是免費和開源的

Core平臺是免費的、開源的。 Core的源代碼托管在Github上。 任何開發人員都可以參與到 Core的開發。 有數千名參與 Core開發的活躍開發人員正在改進特性、添加新特性以及修復bug和問題。

Core由一個名為 Foundation的獨立的非營利組織管理。 60,000多名開發人員和3,700多家公司正在為生態系統做出貢獻。

Core是免費的,并且采用MIT和Apache協議作為開源協議。 對商業十分友好。 不像某Java

Core是跨平臺的

Core支持并運行在Windows、MacOS和Linux操作系統上。 Core跨體系結構(包括x64、x86和ARM)是一致的。 可以導入相同的程序集和庫,并在多個平臺上使用。 這些程序集和庫都可以使用如下的語言進行構建,如:C#、或F#。

Core是可共享的

Core使用一種用 Standard編寫的一致API模型,這種模型對所有應用程序都是通用的。 相同的API或庫可以與多種語言的多個平臺一起使用。

Core是現代的

與一些較舊的框架不同, Core旨在解決當今的現代需求,包括移動友好、構建一次在任何地方運行、可伸縮和高性能。 Core旨在構建針對各種設備的應用程序,包括物聯網和 游戲 機。

Visual Studio 2019和Visual Studio Code是世界上最先進和最現代的集成開發環境。 這兩個IDES都支持當今的現代需求,并且專注于干凈、速度和生產力。 在這里了解有關VisualStudio 2019功能的更多信息:VisualStudio 2019新特性.

Core是快速的

Core 3.0 是快速的。 與 Framework和 Core 2.2及以前的版本相比, Core 3.0的速度很快。 Core比其他服務器端框架(如Java Servlet和)快得多。

根據TechEmpowers發布的一份報告, Core比任何其他框架都要快得多。 TechEmpower基準測試通過對多個Web應用程序框架做如下比較:數據庫的單表查詢,多表查詢,文件訪問,數據更新,明文和JSON序列化等任務進行比較。

Core是輕量級的

Core是輕量級的。 Core可以包含在您的應用程序中,也可以安裝在并行用戶、機器范圍內或服務器上。 Core可以部署在Docker容器中。

Core是友好的

Core通過 Standard與 Framework,Xamarin和Mono兼容。 Core還支持使用各種流行的Web框架和庫,如React,Angular和JavaScript。 TypeScript是 Core和Visual Studio生態系統的關鍵組件之一。

ASP.NET中使用Entity

我們可以使用 Core構建哪些類型的應用程序?

Core是一個通用的軟件開發框架。 它允許開發人員構建各種軟件,包括Web,桌面,移動,云, 游戲 ,物聯網等。

Core更適合跨平臺需求。 Core應用程序支持在Windows,Linux和macOS上運行。 Linux和macOS上也都支持Microsoft流行的開源代碼編輯器Visual Studio Code。 VS Code支持代碼編輯器的現代需求,包括智能提醒和調試。 大多數第三方編輯器(如Sublime,Emacs和VI)都支持 Core。

Web應用

Core是 Core生態系統的核心組件。 Core是一個用于構建網頁的框架。 Core基于MVC架構,并提供用于構建Web的通用庫。 開始使用 Core

Razor是一個使用C#和TypeScript構建動態網頁的新框架。 Razor是一種改變 游戲 規則的技術,它允許C#開發人員用C#構建Web應用程序。

移動開發

移動開發是 Core的關鍵產品。 Xamarin是一套使用C#構建跨平臺移動應用程序的工具和庫。 Xamarin允許開發人員在共享的代碼庫上為iOS、Android、Windows和MacOS構建本地應用程序。

桌面應用程序

Core提供各種框架和工具來構建桌面應用程序。 Windows窗體、WPF、UWP和Xamarin是構建桌面應用程序的四個主要框架。 Core還支持這些框架之間的互操作性。

Windows窗體是一種構建Windows桌面應用程序的技術。 Windows窗體是 Framework的首批組件之一。

WPF(Windows Presentation Foundation)是一種較新的構建Windows桌面應用程序的技術。WPF是作為 Framework版本的一部分發布的

了解有關wpf的更多信息這里.

UWP是一種較新的技術,是在Windows 8之后發布的。 如今,UWP已經成熟。 UWP使用XAML作為表示層(UI)和C#作為后端編程。 但是,貌似微軟已經宣布了他的死亡。

微服務和容器

微服務是一種新的設計模式,它允許開發人員構建軟件服務的小模塊,這些模塊可以使用定義良好的契約相互通信。 微服務使開發、測試和部署應用程序的獨立部分更加容易。 一旦部署完畢,每個微服務都可以根據需要獨立地進行縮放。 Core支持微服務體系結構,它允許跨平臺服務與 Core一起工作,包括使用 Framework、Java、Ruby或其他開發的服務。

容器是今天的越野車。 Core的模塊化、輕量級和靈活性使得將 Core應用程序部署到容器中變得更加容易。 容器把一個應用程序的所有的配置文件和依賴關系,包含在一個單獨的、小型的和獨立的軟件部署單元中。 容器可以部署在任何平臺、云、Linux和Windows上。 Core與Docker和Azure Kubernetes服務都很好地協作。

云應用程序

云應用程序現在越來越受歡迎。 Azure支持各種云應用程序。 Core和C#應用程序可以通過Visual Studio 2019部署在Azure上。

物聯網

物聯網應用正在增長。 Core支持通過UWP框架為運行Windows 10 IoT Core的物聯網設備進行物聯網開發。 UWP可用于構建在由Raspberry Pi,MinnowBoard MAX,DragonBoard 410c等提供支持的物聯網上運行的應用程序。

機器學習

機器學習是軟件開發人員日益增長的領域。

參考微軟官方文檔

游戲

Unity是最受歡迎的 游戲 開發框架之一。 C#和UWP用于構建移動,桌面,控制臺,電視,VR,AR和Web 游戲 。

Core 3.0中的新增的功能有哪些?

最新版本的 Core 3.0剛剛發布。 C#8和Windows桌面是這個版本的兩個主要新增部分。

C#8是C#語言的最新版本。 C#8是 Core的一部分。 C#8增加了新功能,包括

Windows桌面是 Core 3.0的新增功能,允許開發人員使用Windows窗體,WPF和UWP構建Windows桌面應用程序。

以下是 Core 3.0中的其他功能和增強功能列表,

參考文獻

ASP.NET Core + SaasKit + PostgreSQL + Citus 的多租戶應用程序架構示例

在 確定分布策略 中, 我們討論了在多租戶用例中使用 Citus 所需的與框架無關的數據庫更改。 當前部分研究如何構建與 Citus 存儲后端一起使用的多租戶 應用程序。

示例應用

為了使這個遷移部分具體化, 讓我們考慮一個簡化版本的 StackExchange。 供參考,最終結果存在于 Github 上。

我們將從兩張表開始:

CREATE TABLE tenants (id uuid NOT NULL,domain text NOT NULL,name text NOT NULL,description text NOT NULL,created_at timestamptz NOT NULL,updated_at timestamptz NOT NULL);CREATE TABLE questions (id uuid NOT NULL,tenant_id uuid NOT NULL,title text NOT NULL,votes int NOT NULL,created_at timestamptz NOT NULL,updated_at timestamptz NOT NULL);ALTER TABLE tenants ADD PRIMARY KEY (id);ALTER TABLE questions ADD PRIMARY KEY (id, tenant_id);

我們 demo 應用程序的每個租戶都將通過不同的域名進行連接。 Core 將檢查傳入請求并在 tenants 表中查找域。 您還可以按子域(或您想要的任何其他 scheme)查找租戶。

注意 tenant_id 是如何存儲在 questions 表中的。 這將使 :ref:colocate 數據成為可能。 創建表后,使用 create_distributed table 告訴 Citus 對租戶 ID 進行分片:

SELECT create_distributed_table(tenants, id);SELECT create_distributed_table(questions, tenant_id);

接下來包括一些測試數據。

INSERT INTO tenants VALUES (c620f7ec-6b49-41e0-9913-08cfeaf, ,Buffer Overflow,Ask anything code-related!,now(),now());INSERT INTO tenants VALUES (b8a83a82-bb41-4bb3-bfaa-e923faab2ca4, ,Database Questions,Figure out why your connection string is broken.,now(),now());INSERT INTO questions VALUES (347b7041-b421-4dc9-9e10-c64b8847fedf,c620f7ec-6b49-41e0-9913-08cfeaf,How do you build apps in Core?,1,now(),now());INSERT INTO questions VALUES (a47ffcd2-635a-496e-8c65-c1caba7,b8a83a82-bb41-4bb3-bfaa-e923faab2ca4,Using postgresql for multitenant data?,2,now(),now());

這樣就完成了數據庫結構和示例數據。 我們現在可以繼續設置 Core。

Core 項目

如果您沒有安裝 Core,請安裝 Microsoft 的 Core SDK。 這些說明將使用 CLI, 但如果您使用的是 Windows, 也可以使用 Visual Studio 2017 或更高版本。

使用 dotnet new 從 MVC 模板創建一個新項目:

dotnet new mvc -o QuestionExchangecd QuestionExchange

如果您愿意,可以使用 dotnet run 預覽模板站點。 MVC 模板幾乎包含您開始使用的所有內容,但 Postgres 支持并不是開箱即用的。 你可以通過安裝 包來解決這個問題:

add package

此包將 Postgres 支持添加到 Entity Framework Core、 Core 中的默認 ORM 和數據庫層。 打開 文件并將這些行添加到 ConfigureServices 方法的任意位置:

var connectionString = connection-string;()(options => (connectionString)); using ;using ;

將 connection-string 替換為您的 Citus 連接字符串。我的看起來像這樣:

Server=;Port=5432;Database=citus;Userid=citus;Password=mypassword;SslMode=Require;Trust Server Certificate=true;

您可以使用 Secret Manager 來避免將數據庫憑據存儲在代碼中(并意外將它們檢入源代碼控制中)。

接下來,您需要定義一個數據庫上下文。

添加 Tenancy(租賃) 到 App定義 Entity Framework Core 上下文和模型

數據庫上下文類提供代碼和數據庫之間的接口。 Entity Framework Core 使用它來了解您的 data schema 是什么樣的, 因此您需要定義數據庫中可用的表。

在項目根目錄中創建一個名為 的文件,并添加以下代碼:

using ;using ;using ;namespace QuestionExchange{public class AppDbContext : DbContext{public AppDbContext(DbContextOptions options): base(options){}public DbSet Tenants { get; set; }public DbSet Questions { get; set; }}}

兩個 DbSet 屬性指定用于對每個表的行建模的 C# 類。 接下來您將創建這些類。 在此之前,請在 Questions 屬性下方添加一個新方法:

protected override void OnModelCreating(ModelBuilder modelBuilder){var mapper = new ();var types = ()();// Refer to tables in snake_case (e => () = (()));// Refer to columns in snake_case (e => ())()(p => () = (()));}

C# 類和屬性按慣例是 PascalCase,但 Postgres 表和列是小寫的(和 snake_case)。 OnModelCreating 方法允許您覆蓋默認名稱轉換并讓 Entity Framework Core 知道如何在數據庫中查找實體。

現在您可以添加代表租戶和問題的類。 在 Models 目錄中創建一個 文件:

SELECT create_distributed_table(tenants, id);SELECT create_distributed_table(questions, tenant_id);0

還有一個 文件,也在 Models 目錄中:

SELECT create_distributed_table(tenants, id);SELECT create_distributed_table(questions, tenant_id);1

注意 Tenant 屬性。 在數據庫中,問題表包含一個 tenant_id 列。 Entity Framework Core 足夠聰明,可以確定此屬性表示租戶和問題之間的一對多關系。 稍后在查詢數據時會用到它。

到目前為止,您已經設置了 Entity Framework Core 和與 Citus 的連接。 下一步是向 Core 管道添加多租戶支持。

安裝 SaasKit

SaasKit 是一款優秀的開源 Core 中間件。 該軟件包使您的 Startup 請求管道 租戶感知(tenant-aware) 變得容易, 并且足夠靈活以處理許多不同的多租戶用例。

安裝 包:

create_distributed_table(tenants, id);SELECT create_distributed_table(questions, tenant_id);2

SaasKit 需要兩件事才能工作:租戶模型(tenant model)和租戶解析器(tenant resolver)。 您已經有了前者(您之前創建的 Tenant 類),因此在項目根目錄中創建一個名為 的新文件:

SELECT create_distributed_table(tenants, id);SELECT create_distributed_table(questions, tenant_id);3

ResolveAsync 方法完成了繁重的工作:給定傳入請求,它會查詢數據庫并查找與當前域匹配的租戶。 如果找到,它會將 TenantContext 傳回給 SaasKit。 ?所有租戶解析邏輯完全取決于您 - 您可以按子域、路徑或任何其他您想要的方式分隔租戶。

此實現使用 租戶緩存策略(tenant caching strategy) <, 因此您不會在每個傳入請求上都使用租戶查找來訪問數據庫。 第一次查找后,租戶將被緩存兩個小時(您可以將其更改為任何有意義的內容)。

準備好租戶模型(tenant model)和租戶解析器(tenant resolver)后, 打開 Startup 類并在 ConfigureServices 方法中的任何位置添加此行:

SELECT create_distributed_table(tenants, id);SELECT create_distributed_table(questions, tenant_id);4

接下來,將此行添加到 Configure 方法中,在 UseStaticFiles 下方但在 ?UseMvc 上方:

SELECT create_distributed_table(tenants, id);SELECT create_distributed_table(questions, tenant_id);5

Configure 方法代表您的實際請求管道,因此順序很重要!

更新視圖

現在所有部分都已就緒,您可以開始在代碼和視圖中引用當前租戶。 打開 Views/Home/ 視圖并用這個標記替換整個文件:

SELECT create_distributed_table(tenants, id);SELECT create_distributed_table(questions, tenant_id);6

@inject 指令從 SaasKit 獲取當前租戶,并且 @model 指令告訴 Core, 此視圖將由新模型類(您將創建)支持。 在 Models 目錄中創建 文件:

SELECT create_distributed_table(tenants, id);SELECT create_distributed_table(questions, tenant_id);7查詢數據庫

HomeController 負責渲染您剛剛編輯的索引視圖。打開它并用這個替換 Index() 方法:

SELECT create_distributed_table(tenants, id);SELECT create_distributed_table(questions, tenant_id);8

此查詢獲取此租戶的最新五個問題(當然,現在只有一個問題)并填充視圖模型。

SELECT create_distributed_table(tenants, id);SELECT create_distributed_table(questions, tenant_id);9

您添加的代碼需要 _context 和 _currentTenant,這在 controller 中尚不可用。 您可以通過以下方式提供這些向類添加構造函數:

INSERT INTO tenants VALUES (c620f7ec-6b49-41e0-9913-08cfeaf, ,Buffer Overflow,Ask anything code-related!,now(),now());INSERT INTO tenants VALUES (b8a83a82-bb41-4bb3-bfaa-e923faab2ca4, ,Database Questions,Figure out why your connection string is broken.,now(),now());INSERT INTO questions VALUES (347b7041-b421-4dc9-9e10-c64b8847fedf,c620f7ec-6b49-41e0-9913-08cfeaf,How do you build apps in Core?,1,now(),now());INSERT INTO questions VALUES (a47ffcd2-635a-496e-8c65-c1caba7,b8a83a82-bb41-4bb3-bfaa-e923faab2ca4,Using postgresql for multitenant data?,2,now(),now());0 INSERT INTO tenants VALUES (c620f7ec-6b49-41e0-9913-08cfeaf, ,Buffer Overflow,Ask anything code-related!,now(),now());INSERT INTO tenants VALUES (b8a83a82-bb41-4bb3-bfaa-e923faab2ca4, ,Database Questions,Figure out why your connection string is broken.,now(),now());INSERT INTO questions VALUES (347b7041-b421-4dc9-9e10-c64b8847fedf,c620f7ec-6b49-41e0-9913-08cfeaf,How do you build apps in Core?,1,now(),now());INSERT INTO questions VALUES (a47ffcd2-635a-496e-8c65-c1caba7,b8a83a82-bb41-4bb3-bfaa-e923faab2ca4,Using postgresql for multitenant data?,2,now(),now());1測試應用程序

您添加到數據庫的測試租戶與(fake)域 和 相關聯。 ?您需要 編輯 hosts 文件 以在本地計算機上測試這些:

INTO tenants VALUES (c620f7ec-6b49-41e0-9913-08cfeaf, ,Buffer Overflow,Ask anything code-related!,now(),now());INSERT INTO tenants VALUES (b8a83a82-bb41-4bb3-bfaa-e923faab2ca4, ,Database Questions,Figure out why your connection string is broken.,now(),now());INSERT INTO questions VALUES (347b7041-b421-4dc9-9e10-c64b8847fedf,c620f7ec-6b49-41e0-9913-08cfeaf,How do you build apps in Core?,1,now(),now());INSERT INTO questions VALUES (a47ffcd2-635a-496e-8c65-c1caba7,b8a83a82-bb41-4bb3-bfaa-e923faab2ca4,Using postgresql for multitenant data?,2,now(),now());2

使用 dotnet run 或單擊 Visual Studio 中的 Start 啟動項目, 應用程序將開始偵聽 localhost:5000 之類的 URL。 如果您直接訪問該 URL,您將看到一個錯誤,因為您尚未設置任何 默認租戶行為。

相反,訪問, 您將看到您的多租戶應用程序的一個租戶! 切換到查看其他租戶。 添加更多租戶現在只需在 tenants 表中添加更多行即可。

更多

探索 Python/Django 支持分布式多租戶數據庫,如 Postgres+Citus

原文:



相關標簽: ASP.NET中使用Entity、 asp.net、 建立數據庫連接、 Core進行數據訪問、 Framework、 mvc

上一篇:提升ASPNET網站安全性保護您的應用程序免受

下一篇:ASPNETSignalR啟用實時通信和數據流aspnet

內容聲明:

1、本站收錄的內容來源于大數據收集,版權歸原網站所有!
2、本站收錄的內容若侵害到您的利益,請聯系我們進行刪除處理!
3、本站不接受違法信息,如您發現違法內容,請聯系我們進行舉報處理!
4、本文地址:http://m.sycxjdsbhs.com/article/c711a74c3c4ef7258c58.html,復制請保留版權鏈接!


溫馨小提示:在您的網站做上本站友情鏈接,訪問一次即可自動收錄并自動排在本站第一位!
隨機文章
內存碎片:內存管理中的不可避免的挑戰 (內存碎片的概念)

內存碎片:內存管理中的不可避免的挑戰 (內存碎片的概念)

內存碎片的概念內存碎片是指計算機內存中無法被使用的、大小各異的內存塊,這些碎片是由內存分配和釋放操作造成的,當內存被分配和釋放時,可能會留下大小不一的空洞,如果這些空洞過于分散且大小不一,可能會使內存管理變得困難,甚至導致內存耗盡,內存碎片的類型有兩種類型的內存碎片,內部碎片,發生在分配給進程的單個內存塊內,當進程使用內存塊的一部分并...。

互聯網資訊 2024-09-28 09:19:41

CodeBlocks 與其他 IDE 的比較:了解您的選擇 (codeblue第三季)

CodeBlocks 與其他 IDE 的比較:了解您的選擇 (codeblue第三季)

在選擇集成開發環境,IDE,時,有許多因素需要考慮,CodeBlocks是一個流行的跨平臺IDE,適用于C、C,和Fortran編程,它具有許多功能,使其成為開發人員的強大工具,為了幫助您做出明智的決定,我們將CodeBlocks與其他流行IDE進行比較,包括MicrosoftVisualStudio、Eclipse和Intelli...。

最新資訊 2024-09-28 08:45:41

釋放您網站的潛力:探索我們豐富的網頁素材 (釋放您網站的內存)

釋放您網站的潛力:探索我們豐富的網頁素材 (釋放您網站的內存)

提升您的網站成為引人入勝的數字體驗,探索我們豐富的網頁素材寶庫,從高質量圖片到引人入勝的視頻和交互式元素,我們提供了一系列工具,幫助您打造出色的在線形象,高質量圖片引人注目的圖片可以增強您的網站內容并吸引訪客的注意力,我們提供各種高分辨率圖片,涵蓋廣泛的主題和風格,包括,風景和自然人們和文化商業和技術食物和飲料抽象和創意所有圖片均由專...。

最新資訊 2024-09-27 20:11:58

深入剖析 JavaScript setInterval 函數:創建定時任務的終極指南 (深入剖析java中的裝箱和拆箱)

深入剖析 JavaScript setInterval 函數:創建定時任務的終極指南 (深入剖析java中的裝箱和拆箱)

簡介setInterval是JavaScript中用于創建和管理定時任務的一項強大函數,它在各種需要按一定時間間隔執行代碼的場景中發揮著至關重要的作用,本文將深入剖析setInterval函數,從其語法到高級用法,提供全面的指南,語法setInterval函數的語法如下,```javascriptsetInterval,callbac...。

互聯網資訊 2024-09-23 23:47:46

深入研究 SOAP Web 服務:復雜系統中的強大工具 (深入研究是什么短語)

深入研究 SOAP Web 服務:復雜系統中的強大工具 (深入研究是什么短語)

在當今復雜且分布式系統的世界中,SOAPWeb服務已成為實現不同應用程序和服務之間無縫通信的到Web服務,Web服務將處理請求,然后使用SOAP響應進行響應,SOAPWeb服務的優點可互操作性,SOAP基于XML,因此它與各種平臺和編程語言兼容,標準化,SOAP遵循W3C標準,確保了不同實現之間的互操作性,擴展性,SOAP支持自定義擴...。

技術教程 2024-09-16 19:26:27

正則表達式驗證器:數據質量控制的利器,確保數據可靠性 (正則表達式驗證金額格式)

正則表達式驗證器:數據質量控制的利器,確保數據可靠性 (正則表達式驗證金額格式)

在數據處理和分析中,數據質量至關重要,準確可靠的數據是有效決策和洞察的基礎,正則表達式,RegularExpression,是一種強大的工具,可以用來驗證數據格式,確保數據的可靠性,什么是正則表達式,正則表達式是一種描述字符序列模式的特殊符號序列,它允許您定義特定文本格式,并檢查字符串是否符合該格式,正則表達式通常用于,驗證電子郵件地...。

最新資訊 2024-09-15 02:54:18

Γ(z)Γ(1-z) = π/sin(πz)(Γ(z)Γ(1-z))

Γ(z)Γ(1-z) = π/sin(πz)(Γ(z)Γ(1-z))

Γ函數,又稱伽馬函數,是一個推廣階乘函數到復平面的函數,它的定義如下,Γ,z,=∫0tz,1e,tdt對于正整數n,Γ,n,=,n,1,Γ函數滿足以下乘積公式,Γ,z,Γ,1,z,=π,sin,πz,這個公式可以用來求解許多積分,例如,∫0tα,1,1,t,β,1dt=B,α,β,Γ,α,Γ,β,其中B,α,β,是貝塔函數,證明我...。

技術教程 2024-09-12 13:42:55

使用Swift構建高效的macOS和iOS應用程序:全面的指南 (使用SWOT分析法)

使用Swift構建高效的macOS和iOS應用程序:全面的指南 (使用SWOT分析法)

前言Swift是一種強大且高效的編程語言,非常適合開發macOS和iOS應用程序,憑借其出色的性能、簡潔的語法和廣泛的庫,Swift使開發人員能夠創建高性能、用戶友好的應用程序,本指南將提供使用Swift構建高效macOS和iOS應用程序的全面概述,我們將探討Swift的優勢,并提供最佳實踐和技巧,以充分利用該語言的潛力,SWOT分析...。

技術教程 2024-09-08 22:29:15

JavaServer Faces (JSF)(javase和javaee的區別)

JavaServer Faces (JSF)(javase和javaee的區別)

JavaServerFaces,JSF,是一個基于Java的Web框架,用于構建動態、數據驅動的Web應用程序,它是一種Model,View,Controller,MVC,框架,允許您使用Java組件輕松創建用戶界面,UI,JSF的工作原理JSF應用程序由以下組件組成,模型,M,表示應用程序的數據,視圖,V,呈現應用程序UI的組...。

最新資訊 2024-09-08 01:45:54

獲取游戲網站源碼:解鎖定制化游戲體驗 (獲取游戲網站的網址)

獲取游戲網站源碼:解鎖定制化游戲體驗 (獲取游戲網站的網址)

厭倦了千篇一律的游戲體驗,想讓你的游戲更加個性化,更符合你的喜好,獲取游戲網站源碼,解鎖定制化游戲體驗,為你打造獨一無二的游戲世界吧!何為游戲網站源碼,游戲網站源碼是游戲網站的核心,它包含了構建和運行網站所需的所有代碼、腳本和資源,通過獲取源碼,你可以完全控制網站的外觀、功能和內容,獲取源碼的好處定制化游戲體驗,修改源碼,添加新功能,...。

本站公告 2024-09-06 04:12:12

從頭開始:全面指南,教你下載任何網站的源碼 (從頭開始全文閱讀)

從頭開始:全面指南,教你下載任何網站的源碼 (從頭開始全文閱讀)

是否想深入了解您最喜歡的網站是如何運作的,通過下載其源碼,您可以了解網站的內部工作原理并探索其構建方式,本指南將逐步指導您完成下載任何網站源碼的過程,步驟1,選擇網站選擇您要下載源碼的網站,請確保該網站沒有限制訪問其源碼,步驟2,使用瀏覽器開發人員工具接下來,打開您選擇的網站并在瀏覽器中查看其源碼,您可以使用瀏覽器開發人員工具來完成此...。

本站公告 2024-09-05 23:12:43

網站制作哪家好 好的網站設計公司要有什么能力 (網站制作哪家公司最好)

網站制作哪家好 好的網站設計公司要有什么能力 (網站制作哪家公司最好)

現代企業都知道,企業網站對于一個企業的發展和運營來說都是很有利的,而大多數企業本著省事省心的原則會選擇尋求專業網站制作公司的服務,這樣可以最高效地制作出想要的網站而且從性價比方面考慮,這樣的方法也是最劃算的,那么網站制作哪家好可能就是許多企業會困惑的問題了,其實這里的關鍵不在于哪家網站制作公司名氣大,而是知道該如何挑選網站制作公司,下...。

技術教程 2024-09-02 02:29:55

Copyright ? 2025 聚集網 All Rights Reserved
此內容系本站根據來路自動抓取的結果,不代表本站贊成被顯示網站的內容或立場。
本頁閱讀量次 | 本站總訪問次 | 本站總訪客人 | 今日總訪問次 | 今日總訪客人 | 昨日總訪問次 | 昨日總訪客人 |
技術支持:聚集網

国产精品成人免费视频_91丝袜美腿美女视频网站_国产一区二区三区在线看_亚洲欧美另类中文字幕_在线电影av不卡网址_国产视频丨精品|在线观看_日韩一区二区三区国产_国产欧美va欧美va香蕉在线_热re91久久精品国99热蜜臀_亚洲第一精品电影_久久九九亚洲综合_国产成人综合精品_97视频在线观看网址_精品视频久久久久久_日韩av片免费在线观看_久久精品国产99国产精品澳门
美女久久久久久久久久久| 97精品国产97久久久久久春色| 全亚洲最色的网站在线观看| 亚洲色图激情小说| 欧美丝袜一区二区| 国产精品久久婷婷六月丁香| 色哟哟入口国产精品| 日韩中文字幕不卡视频| 国产精品av在线| 欧美另类暴力丝袜| 久久在线视频在线| 日韩av大片在线| 欧美老妇交乱视频| 国产精品视频26uuu| 孩xxxx性bbbb欧美| 国产成人综合精品| 91亚洲精品一区二区| 欧美大全免费观看电视剧大泉洋| 亚洲欧美中文日韩在线| 精品亚洲一区二区三区在线观看| 欧美国产精品va在线观看| 精品中文字幕视频| 久久成人av网站| 理论片在线不卡免费观看| 欧美日韩成人免费| 一区二区三区动漫| 日韩av在线影院| 国产在线98福利播放视频| 国产69精品久久久久9| 亚洲最新中文字幕| 欧美激情图片区| 国产精品丝袜久久久久久高清| 亚洲国产成人久久综合一区| 日韩欧美国产骚| 亚洲精品aⅴ中文字幕乱码| 久久久久久久国产| 亚洲综合国产精品| 亚洲欧美在线一区二区| 精品日本美女福利在线观看| 亚洲人午夜精品| 136fldh精品导航福利| 久久久免费av| 亚洲精品一二区| 日韩av网站导航| 久久精品电影一区二区| 国产美女扒开尿口久久久| 日韩av电影在线免费播放| 亚洲电影免费观看高清| 欧美夫妻性生活视频| 亚洲aa在线观看| 亚洲欧美成人一区二区在线电影| 欧洲亚洲女同hd| 国产精品海角社区在线观看| 国产亚洲视频中文字幕视频| 一区二区亚洲欧洲国产日韩| 欧美精品免费在线| 日本成人精品在线| 欧美性xxxx在线播放| 国产99久久久欧美黑人| 夜夜躁日日躁狠狠久久88av| 久久久www成人免费精品张筱雨| 国产99久久精品一区二区 夜夜躁日日躁| 91精品视频免费观看| 美女国内精品自产拍在线播放| 国产91成人在在线播放| 亚洲精品资源在线| 欧洲永久精品大片ww免费漫画| 日韩欧美视频一区二区三区| 日韩有码在线观看| 亚洲精品国精品久久99热一| 国产亚洲成精品久久| 欧美成人精品一区二区三区| 亚洲精品理论电影| 亚洲欧洲一区二区三区久久| 日产精品99久久久久久| 91高潮精品免费porn| 免费成人高清视频| 欧美日韩中文在线| 国产精品视频播放| 日韩av免费一区| 国产主播喷水一区二区| 色偷偷噜噜噜亚洲男人的天堂| 日韩精品中文字幕有码专区| 日韩av网址在线| 国产成人啪精品视频免费网| 国产午夜精品全部视频在线播放| 欧美日韩美女在线观看| 欧美黑人一级爽快片淫片高清| 国产精品视频免费在线| 国产午夜精品全部视频在线播放| 国产美女久久精品| 国产欧美日韩综合精品| 亚洲色图偷窥自拍| 懂色av中文一区二区三区天美| 国产精品视频午夜| 亚洲国产另类 国产精品国产免费| 国产婷婷色综合av蜜臀av| 777国产偷窥盗摄精品视频| 久久久欧美精品| 国产有码在线一区二区视频| 亚洲性视频网址| 91av在线免费观看视频| 国产成人精品最新| 久久99青青精品免费观看| 日韩美女写真福利在线观看| 欧美日本在线视频中文字字幕| 国产精品久久91| 91精品视频一区| 国产日韩欧美91| 久久精品久久久久电影| 91超碰caoporn97人人| 国产91在线播放精品91| 欧美另类69精品久久久久9999| 91麻豆桃色免费看| 4k岛国日韩精品**专区| 一本大道香蕉久在线播放29| 欧美日韩国产中字| 国产精品一区=区| 亚洲最大成人免费视频| 国产在线精品自拍| 成人免费xxxxx在线观看| 亚洲电影免费观看高清| 91爱视频在线| 国产欧美在线观看| 国产成人精品一区二区在线| 96sao精品视频在线观看| 日韩成人在线免费观看| 91精品国产乱码久久久久久蜜臀| 尤物九九久久国产精品的特点| 久久久成人精品视频| 国产精品99免视看9| 欧美激情视频网| 久久九九免费视频| 亚洲国产精品成人av| 久久精品成人欧美大片| 国产精品男女猛烈高潮激情| 国产成人精品在线观看| 国产亚洲精品久久久久动| 国产精品久久久久久久9999| 国产一区二区三区在线观看网站| 国产精品亚洲视频在线观看| 国产精品自拍网| 欧美日本精品在线| 欧美丰满片xxx777| 国产欧美日韩精品丝袜高跟鞋| 日av在线播放中文不卡| 福利一区福利二区微拍刺激| 91精品久久久久久久久久久久久久| 国产日韩av在线播放| 精品性高朝久久久久久久| 久久久亚洲网站| 欧美一级淫片aaaaaaa视频| 久久久久久av| 萌白酱国产一区二区| 最近2019中文字幕大全第二页| 91国产美女在线观看| 一本色道久久综合狠狠躁篇怎么玩| 国产精品黄视频| 欧美韩日一区二区| 亚洲国产成人91精品| 国产精品黄视频| 韩日精品中文字幕| 中文字幕精品影院| 亚洲欧洲视频在线|