簡體   English   中英

如何使用 Asp.net Core EF Core 在 Web 托管服務器上創建多個數據庫

[英]How To Create multiple database on web hosting server using Asp.net core EF Core

嗨,我正在嘗試使用C# asp.net core開發我的桌面應用程序的 Web 版本,但不確定如何處理數據庫,這是我想要實現的,我的桌面應用程序是使用VB開發的銷售點系統從而應用程序用戶能夠管理多個商店並且每個商店都有自己的數據庫,在創建商店時執行數據庫腳本,現在為新商店創建數據庫。 下面是我創建數據庫的示例代碼。

 'Get DB NAme
        Dim DbNumber As Integer
        ConnectTools()
        cmd.CommandText = "select MAX(StoreCount) as cntt from tblStores"
        rd = cmd.ExecuteReader
        rd.Read()
        If IsDBNull(rd.Item("cntt")) Then
            DbNumber = "1"
        Else
            DbNumber = rd.Item("cntt") + 1
        End If
        rd.Close()
        DatabaseName = "AutemStore" & DbNumber

        cmd.Connection = conn
        'conn.Open()
        conn.ChangeDatabase("Master")
        If conn.State = ConnectionState.Open Then conn.Close()
        conn.Open()
        cmd.CommandText = "Create Database " & DatabaseName
        cmd.ExecuteNonQuery()
        'Save DB Name
        My.Settings.DatabaseName = DatabaseName
        My.Settings.Save()
        'Run DB Script 

        conn.ChangeDatabase(My.Settings.DatabaseName)
        cmd.CommandText = ReadFile(Application.StartupPath & "\dstore.sql")
        cmd.CommandType = CommandType.Text
        cmd.ExecuteNonQuery()

我相信有一種方法可以使用Asp.net core來完成我剛剛解釋的這項任務,但我還不知道如何完成它,請問有沒有關於如何做到這一點或替代方法的建議它完成了。 提前致謝。

由於您正在嘗試使用 EF(或者可能是 EFCore),我假設您已經設置了數據模型並將DbContext作為_context注入。 (如果你還沒有,你可以按照官方文檔開始)。

之后,您可以像這樣使用 EFCore 重寫 VB.NET + ADO.NET 代碼:

  1. select MAX(StoreCount) as cntt from tblStores的第一個查詢可以通過

    var cntt = _context.Stores.Max(t => t.StoreCound);
  2. 創建數據庫的第二個命令可以改寫為:

     var sql= "Create Database @dbname"; var dbname = new SqlParameter("@dbname", "The_DB_Name"); _context.Database.ExecuteSqlCommand(sql, dbname);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM