2012-10-01 14 views
1

我有一個表在我的數據庫(多對多表),兩個類A和B已經這樣創建。我如何與我的數據庫中的特定表與我的數據庫實體框架5

this.HasMany(t => t.TrafficImageQuestions) 
     .WithMany(t => t.TrafficImages) 
     .Map(m => 
      { 
       m.ToTable("TrafficImage_Answers"); 
       m.MapLeftKey("TrafficImagesGuid"); 
       m.MapRightKey("TrafficImageQuestionsId"); 


      }); 

現在,我想我的assosiate自定義類這個同桌「TrafficImage_Answers」,類offcause有左右鍵,然後還3.自定義屬性。

(我做了列添加到數據庫中「答案」)

public class TrafficImageAnswer 
    { 
     public System.Guid TrafficImageGuid { get; set; } 
     public int TrafficImageQuestionId { get; set; } 
     public byte Answer { get; set; } 
    } 

我這樣做,因爲我想的實體模型,以保持我的許多人A的一對多關係和B,仍然能夠跟蹤查找數據庫中的3.屬性答案。

我曾嘗試

我試着做到以下幾點:

this.Property(t => t.TrafficImageQuestionId) 
     .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); 
    this.Property(t => t.TrafficImageGuid) 
     .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); 

    // Table & Column Mappings 
    this.ToTable("TrafficImage_Answers"); 

,但我得到了表已經存在,邏輯。我需要告訴它,它應該使用該表,而不是嘗試創建它。 (即時處理EF 5和包管理器中的數據庫緩解)。

回答

0

這不支持。如果您希望在聯結表中爲多對多關係創建附加字段,則無法將其映射爲多對多。每個表只能被映射一次,但在同一時間映射表到實體和多對多關係使其映射兩次。

您必須更改您的TrafficImageQuestionsTrafficImages才能與TrafficImageAnswer使用一對多關係,而不是使用彼此的多對多關係。

+0

我不是那個實現的粉絲,不能決定是否我寧願添加列沒有EF知道它,並有一些存儲過程,當我需要在映射表中的東西時查詢它。感謝你的回答。 –