簡體   English   中英

如何使用實體框架 6 代碼優先方法在 SQL Server 中創建序列並應用兩個表?

[英]How to create the sequence and apply two tables in SQL Server using Entity framework 6 code first approach?

我有兩個表 A 和 B

表 A - Id 主鍵不是身份

表 B - Id 主鍵不是身份 - Id 主鍵不是身份

如何在實體框架6中創建沒有identity(1,1)的A和B表主鍵列並為這兩個表應用序列。

而這兩張表需要在SQL中實現sequence

如果示例表 A 插入一個記錄 id 是 1。我將像這樣插入表 B id 是 2

我被檢查身份關閉在腳本和實體框架 6 中不起作用,也無法在實體框架 6 中創建序列

但是 EFCore 具有序列特征

 modelBuilder.HasSequence<int>("OrderNumbers", schema: "shared")
            .StartsAt(1000)
            .IncrementsBy(5);

        modelBuilder.Entity<A>()
            .Property(o => o.Id)
            .HasDefaultValueSql("NEXT VALUE FOR shared.OrderNumbers");

在這

HasSequence 在實體框架 6 中不可用

如何首先在 EF 6 代碼中創建序列

有誰知道請分享

使用以下過程在上次遷移中的查詢中添加序列

public override void Up()
{
Sql("CREATE SEQUENCE tbl_seq START WITH 1 INCREMENT BY 1;");
..........
..........
CreateTable(
            "dbo.Table_A",
            c => new
            {
                id = c.Long(nullable: false, identity: false, defaultValueSql: 
               "NEXT VALUE FOR tbl_seq"),....
}

 CreateTable(
            "dbo.Table_B",
            c => new
            {
                id = c.Long(nullable: false, identity: false, defaultValueSql: 
               "NEXT VALUE FOR tbl_seq"),....
}

在這個地方設置更改這些表集的創建表的遷移

身份:false,defaultValueSql:“tbl_seq 的下一個值”

更新數據庫后。 我們檢查那些表在這些表上應用的序列。

暫無
暫無

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

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