2012-01-19 24 views
8

Tengo un problema con la generación db en el escenario siguiente: EntidadEntity Framework CODIGO - dos entidades con el mismo nombre pero en diferentes espacios de nombres

1.cs Proyecto en First.Entities espacio de nombres maped a la mesa First_Project.

namespace First.Entities 
{ 
    #region using section 

    using System.Collections.Generic; 
    using System.ComponentModel.DataAnnotations; 
    using System.Data.Entity.ModelConfiguration; 
    using System.Diagnostics.CodeAnalysis; 

    #endregion 

    [Table("First_Project")] 
    public class Project 
    { 
     [Key] 
     public int Id 
     { 
      get; 
      set; 
     } 

     [Required] 
     [MaxLength(1000)] 
     public string Name 
     { 
      get; 
      set; 
     } 
    } 
} 

2.cs Entidad de proyecto en el espacio de nombres Second.Entities mapeado a la tabla Second_Project.

namespace Second.Entities 
{ 
    #region using section 

    using System.Collections.Generic; 
    using System.ComponentModel.DataAnnotations; 
    using System.Data.Entity.ModelConfiguration; 
    using System.Diagnostics.CodeAnalysis; 

    #endregion 

    [Table("Second_Project")] 
    public class Project 
    { 
     [Key] 
     public int Id 
     { 
      get; 
      set; 
     } 

     [Required] 
     [MaxLength(1000)] 
     public string Name 
     { 
      get; 
      set; 
     } 
    } 
} 

3.cs DbContext archivo

namespace DataContext 
{ 
    #region using section 

    using System.Collections.Generic; 
    using System.Data.Common; 
    using System.Data.Entity; 
    using System.Data.Entity.Infrastructure; 
    using System.Data.Entity.ModelConfiguration.Conventions; 
    using System.Diagnostics.CodeAnalysis; 
    using First.Entities; 
    using Second.Entities; 

    #endregion 

    public class MyEntities : DbContext 
    { 
     public DbSet<First.Entities.Project> FirstProjects { get; set; } 

     public DbSet<Second.Entities.Project> SecondProjects { get; set; } 
    } 
} 

por favor ayuda.

+5

¿Qué error (s) obtienes? Con qué necesitas ayuda? –

+0

No es posible crear una base de datos en tal escenario. El error es: – mehanik

+0

No se asignó el tipo 'Second.Entities.Project'. Compruebe que el tipo no se haya excluido explícitamente mediante el método Ignore o la anotación de datos NotMappedAttribute. Verifique que el tipo se haya definido como una clase, que no sea primitivo, anidado o genérico, y que no herede de EntityObject. – mehanik

Respuesta

10

No es posible. El nombre de clase (sin espacio de nombres) para cada entidad asignada en un tipo de contexto único debe ser único. La razón se describe en this answer.

Debe usar diferentes nombres de clase. Por cierto. el uso de nombres de clases diferentes (más específicos) también hace que tu código sea mejor legible y tus tipos sean más útiles.

Cuestiones relacionadas