2013-01-31 95 views
0

我有更多的實體框架問題。其中 一個是現在在這裏解決entity framework multiple tables same name實體框架無效的列名稱

當我嘗試插入任一臺博或表BI我得到以下錯誤:

{"Invalid column name 'Bo_obrano'.\r\nInvalid column name 'Bo_boano'.\r\nInvalid column name 'Bo_ndos'."}

{"Invalid column name 'Bi_bistamp'}

我通過使用電動工具對數據庫進行反向設計,我現在可以像這樣對我進行繪圖:

public boMap() 
    { 
    // Primary Key 
    HasKey(t => new { t.obrano, t.boano, t.ndos }); 

    Property(t => t.obrano) 
     .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); 
    Property(t => t.boano) 
     .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); 
    Property(t => t.ndos) 
     .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); 
    } 

和雙向映射是這樣的:

public BiMap() 
     { 
      // Primary Key 
      HasKey(t => t.bistamp); 
.... 

我的上下文類看起來是這樣的:

public class PHCDbContext:DbContext 
    { 
     //classes mapeadas via reverse 
     public DbSet<Bi> DadosLinhasEncomendas { get; set; } 
     public DbSet<Bo> DadosCabecalhosEncomendas { get; set; } 
... 

    public PHCDbContext(string connection):base(connection) 
      { 

       Database.SetInitializer<PHCDbContext>(null); 
      } 

      protected override void OnModelCreating(DbModelBuilder modelBuilder) 
      { 
       modelBuilder.Configurations.Add(new BiMap()); 
       modelBuilder.Configurations.Add(new boMap()); 
    .... 

我導出映射的指示在這裏: export code first model mapping

我所發現這些領域本身並不存在。當我在visual studio中打開edmx文件時,我發現那些字段在類的導航屬性中,在模型的關聯部分中。它們代表表中的主鍵,而不是外鍵。但它們沒有映射到poco類中的任何值。更少的數據庫中的任何列。 那麼我該如何解決這個問題? 幫助將apreciated提前 感謝

回答

0

你的情況看起來有點不同尋常,但你需要看看你的數據庫,看看列名,然後在上下文中它映射:

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.Entity<Bi>().ToTable("dbo.Bi"); 
    modelBuilder.Entity<Bi>().Property(p => p.bistamp).HasColumnName("actualName"); 
} 
+0

對於遲到的回覆感到抱歉,但例如在我的bimap類不會有以下幾行:ToTable(「bi」); 屬性(t => t.bistamp).HasColumnName(「bistamp」);處理注入和數據庫映射? – jonniebigodes

1

我通過刪除導航屬性來完成它的工作。因爲表格之間沒有任何關聯。目前爲止他們都是孤立的。感謝您的幫助再次

相關問題