2010-05-02 53 views
1

我有這個結構ID PK的表和兩個FK的列,例如ActivityID和ContactID。 我嘗試在這兩個FK列中插入一些值programmaticlly。 我怎麼能做到這一點,任何幫助appriciated.TnxEF編程式插入多對多

回答

0

如果您想使用您的結構 - 您必須獲取Activity和Contact的實例,並在新實體上設置相應的屬性。

var newActivityContact = new ActivityContact();// m_Entities.CreateActivityContact(0); 
newActivityContact.Activity = activityRepository.GetById(activityId); 
newActivityContact.Contact = contactRepository.GetById(contactId); 
m_Entities.AddToActivityContact(newActivityContact); 
m_Entities.SaveChanges(); 
+0

activityRepository.GetById(activityId)該查詢是否獲取此活動。 – amchoni 2010-05-03 16:15:26

+0

yes - 從您的m_Entities實例中檢索它,如 m_Entities.Contact.FirstOrDefault(c => c.Contact_Id == contactId); – 2010-05-03 22:51:40

0

我認爲最好的解決辦法是擺脫主鍵,設置組合的ActivityID和ContactID作爲PK,然後在可視化設計器中重新創建整個模型。每個Activity對象將具有Contacts導航屬性,並且每個Contact將具有Activities。您可以通過以下方式將聯繫人添加到活動中:

activity.Contacts.Add(contact); 

如果您確實需要額外的ID,則會更加複雜。

+0

我在數據表中有這兩個FK,我嘗試在sql中插入這個rel.table。 – amchoni 2010-05-03 16:16:36