5

Este es mi primer intento de crear mi propio modelo EF, y me encuentro atascado intentando crear una asociación de tabla de búsqueda usando código en primer lugar para que pueda acceder a:EF 4.1 Primero el código: cada nombre de propiedad en un tipo debe ser un error único en la asociación de tabla de búsqueda

myProduct.Category.AltCategoryID 

que tienen modelos de configuración y las asignaciones como yo entiendo que es correcta, pero continuará recibiendo de error 0019: Cada nombre de la propiedad en un tipo debe ser único. Nombre de la propiedad 'categoryId' ya estaba definido

Los siguientes modelos están representados en mi código:

[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; } 
} 

he especificado las asociaciones con:

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

He probado unos cuantos otras cosas, incluida la adición de la anotación [ForeignKey], pero que da como resultado un error que contiene una referencia al campo ProductID.

Respuesta

8

que buscas:

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); 
Cuestiones relacionadas