0
我處於從XML文件導入大量「鏈接」記錄的情況,並且我想使用實體框架將它們插入到我的SQL鏈接表中。我的鏈接表是從字面上只有2列,這兩者都是FKS和構成PK:實體框架 - 按ID插入
[UserAssessmentId] [int] NOT NULL
[AnswerId] [int] NOT NULL
我已經習慣了做插入的方式包括以下內容:
- 從獲取
UserAssessment
實體數據庫爲userAssessmentId
。 - 從
answerId
獲取DB的Answer
實體。 - 將
Answer
實體添加到UserAssessment
實體的Answers
集合中。 - 重複2和3爲每個
answerId
添加。 - 致電
context.SaveChanges()
。
麻煩的是,當添加數以百計的答案時,這是非常密集的數據庫; EF必須獲得的記錄,每個回答它正在添加到鏈接表!我只想插入一個給定的userAssessmentId
和給定的answerId
的記錄,而不是經歷首次獲得實體的麻煩。 EF不必擔心我插入的ID是否有效;只是假設他們是。有沒有辦法讓EF來做到這一點,或者我需要使用普通的SQL?
+1聽起來像一個可行的解決方案。可能比在主模型中合併交接表更好(並且失去許多至多個)。 – 2013-03-27 21:25:16
我試過這個解決方案,它給了我「自從創建數據庫以來,支持'UserAssessmentsAnswersContext'上下文的模型已經發生了變化。考慮使用Code First Migrations來更新數據庫(http://go.microsoft.com/fwlink/? LINKID = 238269)「。當我嘗試添加一個實體到上下文。不知道爲什麼。 – Jez 2013-03-28 10:23:32
好吧,我只是在新創建的上下文中嘗試了一個'Add-Migration';它想要放棄一切,包括現有的'UserAssessmentsAnswers'表(可能是因爲在新環境中缺少FK引用) - 是否有解決方法? – Jez 2013-03-28 10:27:12