Tôi mới tham gia EF và cố gắng thực hiện các bước đầu tiên bằng cách tiếp cận mã đầu tiên trong ETF6.0 và bây giờ tôi gặp sự cố.Cách sử dụng thuộc tính String làm khóa chính trong Entity Framework
tôi có một tài sản
[Key]
public string FooId { get; set; }
đó là chìa khóa chính của tôi cho mô hình.
Nhưng nếu tôi chạy lệnh
PM> Update-Database
trong quản lý gói giao diện điều khiển để cập nhật cấp phát di cư đến các cơ sở dữ liệu tôi nhận được lỗi sau:
Identity column 'FooId' must be of data type int, bigint, smallint, tinyint, or decimal or numeric with a scale of 0, and constrained to be nonnullable.
Nếu tôi thay đổi PK trong mô hình của tôi để
[Key]
public int FooId { get; set; }
mọi thứ hoạt động tốt.
Nhưng tôi sẽ cần PK là loại chuỗi vì nó làm cho cảm giác hoàn toàn trong trường hợp của tôi. Tôi biết có những nhược điểm nhưng đối với tôi nó là cần thiết.
Tôi thấy một bài đăng cũ hơn ở đây How to make string as primary key in entity framework!.
Nhưng có vẻ như không giải quyết được vấn đề của tôi hoặc tôi chỉ không hiểu nó.
Có thực sự là tôi không thể sử dụng chuỗi như PK trên cơ sở dữ liệu SQL không?
Hoặc có cách nào để làm điều đó không?
Điều quan trọng là mặc định để nhận dạng, vì vậy bạn cần phải tắt nó bằng thuộc tính '[DatabaseGenerated (DatabaseGeneratedOption.None)] 'Điều đó có nghĩa là bạn cần chỉ định khóa bằng tay khi thêm (nó không được tạo). – Hopeless