14

我正在使用EntityFramework和「代碼優先」方法進行遷移。EntityFramework代碼優先:設置字段順序

我已經成功地從我的模型生成了表格,但是列按字母順序添加,而不是按照模型中的順序添加。

我已經試過這樣:

[Key, Column(Order=0)] 
public int MyFirstKeyProperty { get; set; } 

[Column(Order=1)] 
public int MySecondKeyProperty { get; set; } 

但似乎並不奏效。

如何手動設置數據庫中字段的順序?

我使用的是ASP.NET Core和EF Core(SqlServer)v1.1.0。

回答

10

當前未按類屬性排序列。 以下是關於列排序的長篇討論。 Column ordering #2272

Update as on 07/12/2017

這個問題是在積壓的里程碑。這意味着它不是 將發生2.0版本。我們將在2.0版本之後重新評估積壓的 ,並在當時考慮這個項目。

+7

相當令人失望,尤其是*有沒有計劃在任何當前安排的釋放來改變這一點。正確的做法是,您不喜歡列順序,就是編輯生成的遷移文件並根據需要移動順序。* +1作爲答案。 –

+1

謝謝你們!手動編輯'CreateTable'調用的竅門。羞愧它不被EF Core支持,但希望它會。 –

0

此時EF核心不支持它。但有一種解決方法that.That是,你可以明確地指定在遷移操作SQL。

而不是在您的遷移中使用CreateTable方法,您需要顯式編寫如下所示的SQL。您可以根據需要提供訂單。

migrationBuilder.Sql("CREATE TABLE Properties(
    MyFirstKeyProperty INT NOT NULL, 
    MySecondKeyProperty int NOT NULL, 
    AGE INT NOT NULL, 
    ...... 
    ...... 
    PRIMARY KEY (MyFirstKeyProperty) 
)"); 

您可以閱讀有關rowanmiller's commnet here about how to sort out that issue just for now

相關問題