簡體   English   中英

在 EF Core 3.1 中設置數據庫選項

[英]Set database options in EF Core 3.1

我正在使用帶有模型優先遷移的 EF Core 3.1。 如果數據庫不存在,那么它會自動創建一個。

我需要在表上啟用 SQL 服務器更改跟蹤(不是 EF Core 更改跟蹤),但要這樣做,需要打開 SQL 服務器數據庫更改跟蹤。 我將如何在代碼中設置如下數據庫級別的選項?

SET CHANGE_TRACKING = ON  
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON)  
  • 你可以使用原始 sql
    using(var context = new SampleContext())
    {
        var commandText = "INSERT Categories (CategoryName) VALUES (@CategoryName)";
        var name = new SqlParameter("@CategoryName", "Test");
        context.Database.ExecuteSqlCommand(commandText, name);
    }
  • 或者遷移時執行 sql
public partial class UpdateDbOptions: Migration
{
    protected override void Up(MigrationBuilder migrationBuilder)
    {
        var sp = @"ALTER DATABASE [mydatabase]  
SET CHANGE_TRACKING = ON  
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON)";

        migrationBuilder.Sql(sp);
    }

    protected override void Down(MigrationBuilder migrationBuilder)
    {

    }
}

暫無
暫無

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

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