2012-01-19 4 views
8

mam problem z db pokolenia w następujący scenariusz: podmiotEntity Framework Code First - dwa podmioty o tej samej nazwie, ale w różnych przestrzeniach nazw

1.cs projektu w First.Entities nazw maped tabeli 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 Obiekt projektu w przestrzeni nazw Second.Entities mapowany do tabeli 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 złożyć

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

Proszę o pomoc.

+5

Jakie błędy dostałeś? Z czym potrzebujesz pomocy? –

+0

W takim scenariuszu nie można utworzyć bazy danych. Błąd: – mehanik

+0

Typ "Second.Entities.Project" nie został odwzorowany. Sprawdź, czy typ nie został jawnie wykluczony przy użyciu metody Ignoruj ​​lub NotMappedAttribute adnotacji danych. Sprawdź, czy typ został zdefiniowany jako klasa, nie jest pierwotny, zagnieżdżony lub ogólny i nie dziedziczy po EntityObject. – mehanik

Odpowiedz

10

Nie jest to możliwe. Nazwa klasy (bez przestrzeni nazw) dla każdej zmapowanej jednostki w pojedynczym typie kontekstu musi być unikalna. Powód jest opisany w this answer.

Musisz używać różnych nazw klas. Btw. używanie różnych (bardziej szczegółowych) nazw klas powoduje również, że kod jest lepiej czytelny, a typy lepiej wykorzystywane.