我正在使用 .NET 應用程式開發 DB-first 環境。
我意識到在創建遷移檔案時,物體框架在需要洗掉主鍵時不會從 SQL Server 中獲取正確的主鍵名稱。
這是遷移檔案生成以洗掉主鍵的內容:
DropPrimaryKey("dbo.TableName");
但是在SQL Server中,PK約束是這樣的:
[PK__TableName__48AFA797B7F88EC3]
我有兩個問題:
- 為什么PK約束名稱中有這些隨機生成的數字?
- 為什么物體框架無法檢測到該名稱并根據當前架構創建遷移檔案?
當我運行包含的遷移檔案時,DropPrimaryKey("dbo.TableName");它不起作用,我收到此錯誤:
'PK_dbo.TableName' 不是約束。
無法洗掉約束。請參閱以前的錯誤。
uj5u.com熱心網友回復:
為什么PK名稱中有這些隨機生成的數字?
如果您不命名約束,SQL Server 將為它生成一個名稱。
當我運行遷移檔案時。. .
你為什么還要生成遷移?在資料庫優先作業流中,您將架構更改直接應用于資料庫,然后重新構建或調整 EF 模型以匹配。遷移僅用于代碼優先作業流。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/394872.html
標籤:。网 sql-server 实体框架 实体框架-6
上一篇:使用變數Coalesce排序
