Tôi có một bảng (Id, name, itemst, otherproperties), Id là khóa chính và tôi muốn một khóa tổng hợp duy nhất (tên, itemst). Làm thế nào tôi có thể thêm điều này bằng cách sử dụng mã đầu tiên bằng API thông thạo (ưa thích) hoặc chú thích?Làm cách nào để thêm khóa duy nhất kết hợp bằng EF 6 Fluent Api?
10
A
Trả lời
11
Dưới đây là ví dụ cho thấy cách tạo khóa duy nhất kết hợp thông qua API thông thạo. Khóa tổng hợp bao gồm ProjectId và SectionOdKey.
public class Table
{
int Id{set;get;}
int ProjectId {set;get;}
string SectionOdKey{set;get;}
}
public class TableMap : EntityTypeConfiguration<Table>
{
this.Property(t => t.ProjectId).HasColumnName("ProjectId")
.HasColumnAnnotation("Index", new IndexAnnotation(new IndexAttribute("IX_ProjectSectionOd", 1){IsUnique = true}));
this.Property(t => t.SectionOdKey).HasColumnName("SectionOdKey")
.HasColumnAnnotation("Index", new IndexAnnotation(new IndexAttribute("IX_ProjectSectionOd", 2){IsUnique = true}));
}
13
Hãy nói rằng bạn có một thực thể có tên
public class MyTable
{
public int Id {get; set;}
public String Name {get; set;}
}
bạn có thể tạo khóa composit sử dụng
public class YourContext : DbContext
{
public DbSet<MyTable> MyTables { get; set; }
protected override void OnModelCreating(DbModelBuilder builder)
{
builder.Entity<MyTable>().HasKey(table => new {table.Id, table.Name});
}
}
nếu bạn thích dữ liệu chú thích bạn có thể đơn giản thêm KeyAttribute
với nhiều thuộc tính
public class MyTable
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] // optional
[Key]
public int Id { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.None)] // optional
[Key]
public String Name { get; set; }
}
Các vấn đề liên quan
- 1. diff git duy nhất để hợp nhất cam kết
- 2. mysql kết hợp các phím duy nhất
- 3. Tạo khóa duy nhất
- 4. Làm cách nào để tạo ID duy nhất bằng Python?
- 5. Làm cách nào để in số lượng kết quả trùng khớp duy nhất bằng grep?
- 6. cách kết hợp 2 danh sách duy nhất
- 7. Cách thêm dữ liệu bằng AddOrUpdate bằng một khóa phức trong EF 4.3
- 8. Phím hỗn hợp/khóa chính/duy nhất với Django
- 9. Làm cách nào để quản lý việc di chuyển EF 6 trong studio trực quan 2015?
- 10. Làm cách nào để hợp nhất hai mảng bằng cách tiếp nhận các giá trị duy nhất từ mảng thứ hai có cùng khóa với mảng đầu tiên?
- 11. Làm cách nào để tạo giá trị duy nhất cho mỗi khóa bằng cách sử dụng dict.fromkeys?
- 12. cách thêm khóa ngoại trong EF 7 alpha
- 13. Làm thế nào để tôi xóa hồ sơ duy nhất từ bảng sử dụng EF 6.1.1
- 14. Làm cách nào để hợp nhất các bảng bằng các khóa chính tự động?
- 15. Làm thế nào để thích ứng IObjectContextAdapter từ EF 6 đến EF Lõi
- 16. Kết hợp bảng duy nhất với khối - Mã trong Java
- 17. Việc di chuyển để thêm ràng buộc duy nhất vào kết hợp các cột
- 18. Cách tốt nhất để tổng hợp mảng bằng cách sử dụng ECMASCRIPT 6 Generator/Functions
- 19. Cách thêm Hiệp hội EF6 vào Khóa Ứng viên/Khóa duy nhất không phải là Khóa chính?
- 20. Làm cách nào để duy trì thứ tự các khóa tôi thêm vào một băm Perl?
- 21. Làm cách nào để hợp nhất nhiều tệp PDF thành một tệp duy nhất?
- 22. T-SQL: Làm cách nào để tạo khóa duy nhất phân biệt chữ hoa chữ thường?
- 23. Làm cách nào để xóa khóa và giá trị của khóa khỏi một mảng kết hợp?
- 24. Làm cách nào để thêm khóa liên kết Shift + Ctrl + H X vào IDE Delphi bằng cách sử dụng ToolsApi?
- 25. MySQL id duy nhất hoặc kết hợp id
- 26. Làm thế nào để đưa ra một ràng buộc duy nhất đối với sự kết hợp các cột trong Oracle?
- 27. Thêm ràng buộc duy nhất tổng hợp trong Liquibase
- 28. Cách tạo Long duy nhất bằng UUID
- 29. Làm cách nào để kết hợp "của chúng ta" bằng công cụ kết hợp git Eclipse?
- 30. Cách lấy khóa duy nhất cho hai trường có Hibernate?
Hey! Tôi chuẩn bị trả lời câu hỏi đó. –
@ByteBlast ahh! gr8 2 bạn ở đây, một phần của ans vẫn còn thiếu, thêm độc đáo thông qua api thông thạo –