14

Tôi đang sử dụng EntityFramework với phương pháp "Mã đầu tiên" với các lần di chuyển.EntityFramework code đầu tiên: Đặt thứ tự các trường

Tôi đã tạo bảng thành công từ các mô hình của mình, nhưng các cột đang được thêm vào theo thứ tự bảng chữ cái thay vì thứ tự bên trong mô hình của tôi.

Tôi đã thử này:

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

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

Nhưng điều đó dường như không được làm việc.

Tôi làm cách nào để đặt thứ tự các trường trong cơ sở dữ liệu theo cách thủ công?

Tôi đang sử dụng ASP.NET Core và EF Core (SqlServer) v1.1.0.

Trả lời

10

Hiện tại, các cột sắp xếp theo thuộc tính lớp không được triển khai. Đây là cuộc thảo luận dài về thứ tự cột. Column ordering #2272

Update as on 07/12/2017

vấn đề này nằm trong mốc Backlog. Điều này có nghĩa rằng nó không phải là sẽ xảy ra cho phiên bản 2.0. Chúng tôi sẽ đánh giá lại bản ghi nhật ký sau bản phát hành 2.0 và xem xét mục này tại thời điểm đó.

+7

Khá thất vọng, đặc biệt là * Không có kế hoạch để thay đổi điều này trong bất kỳ phiên bản hiện theo lịch trình. Điều chính xác để làm điều đó bạn không thích thứ tự cột là để chỉnh sửa các tập tin di chuyển được tạo ra và di chuyển thứ tự xung quanh như mong muốn. * 1 cho câu trả lời mặc dù. –

+1

Xin cảm ơn các bạn! Chỉnh sửa bằng tay lệnh gọi 'CreateTable' đã thực hiện thủ thuật. Xấu hổ nó không được hỗ trợ bởi EF Core, nhưng hy vọng nó sẽ được. –

0

Tại EF lõi khoảnh khắc này không hỗ trợ nó .Nhưng có một cách giải quyết cho that.That là, bạn có thể xác định một cách rõ ràng SQL hoạt động chuyển đổi của bạn.

Thay vì sử dụng phương pháp CreateTable trong di chuyển của bạn, bạn cần phải viết SQL một cách rõ ràng như bên dưới. Ở đây bạn có thể đặt hàng theo ý muốn.

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

Bạn có thể đọc về rowanmiller's commnet here about how to sort out that issue just for now

Các vấn đề liên quan