5

Đây là lần đầu tiên tôi tạo mô hình EF của riêng mình và tôi thấy mình đang cố gắng tạo liên kết bảng tra cứu bằng Mã Đầu tiên vì vậy tôi có thể truy cập:EF 4.1 Mã đầu tiên: Mỗi tên thuộc tính trong một loại phải là lỗi duy nhất trên liên kết Bảng tra cứu

myProduct.Category.AltCategoryID 

tôi có các mô hình thiết lập và ánh xạ như tôi hiểu được chính xác, nhưng tiếp tục nhận được lỗi 0019: Mỗi tên thuộc tính trong một loại phải là duy nhất. Tên bất động sản 'CategoryID' đã được định nghĩa

Các mô hình sau đây được trình bày trong mã của tôi:

[Table("Product", Schema="mySchema")] 
public class Product { 
    [Key, DatabaseGenerated(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.None)] 
    public int ProductID { get; set; } 
    public int CategoryID { get; set; } 
    public virtual Category Category { get; set; } 
} 

[Table("Category", Schema="mySchema")] 
public class Category { 
    [Key, DatabaseGenerated(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.None)] 
    public int CategoryID { get; set; } 
    public string Name { get; set; } 
    public int AltCategoryID { get; set; } 
} 

tôi đã xác định các hiệp hội với:

modelBuilder.Entity<Product>() 
        .HasOptional(p => p.Category) 
        .WithRequired() 
        .Map(m => m.MapKey("CategoryID")); 

Tôi đã thử một vài những thứ khác, bao gồm thêm chú thích [ForeignKey], nhưng điều này dẫn đến lỗi có chứa tham chiếu đến trường ProductID.

Trả lời

8

Bạn đang tìm kiếm:

modelBuilder.Entity<Product>() 
      // Product must have category (CategoryId is not nullable) 
      .HasRequired(p => p.Category)  
      // Category can have many products 
      .WithMany()      
      // Product exposes FK to category 
      .HasForeignKey(p => p.CategoryID); 
Các vấn đề liên quan