0

我們有很多需要加載到大量表中的數據。至於我可以看到我們有兩個選擇:使用代碼第一次遷移爲azure進行批量插入

  1. 包括數據作爲配置類種子法的一部分 問題 表1.A這將是緩慢的,涉及編寫大量的C#代碼)

  2. 使用批量插入的代碼第一遷移 - 快了很多,而且可能是一個更好的解決方案。問題 2.a.與其他數據一起工作可能會很棘手,這些數據會作爲種子的一部分加載到相同的表中。 2.b.它需要打開SQL標識插入。

什麼解決方案是最好的,如果是2我怎麼去批量插入的代碼第一遷移和我怎樣才能解決這些問題?

+0

你嘗試過什麼了嗎? Azure Sql將插入限制爲每INSERT語句只有1k行。在選擇 –

+0

時需要考慮的另一件事我找不到一個體面的解決方案Scott,爲此付出了努力。有任何想法嗎? – Burt

+0

我個人會正確設計表格(確保身份種子是正確的),確保所有這些都是正確的,然後直接遷移到數據庫中。如果來自另一個Sql數據庫,你很好。如果您有另一種類型的數據庫仍然很容易使用Sql Management Studio –

回答

0

繞過EF和使用ADO.NET/SQL絕對是批量數據上傳一個不錯的辦法。最好的方法取決於您是希望將數據作爲遷移的一部分插入,還是僅在應用程序啓動時運行的邏輯。

  • 如果你希望它被插入作爲遷移的一部分(從那以後你就不用擔心防守檢查是否存在數據等。這可能是不錯的),那麼你可以使用Sql(string)方法執行使用任何您想要的格式和sql功能的sql(包括切換IDENTITY_INSERT開啓/關閉)。在EF6.1中,還有一個重載,它允許您輕鬆運行.sql文件,而不是將所有代碼都放在一個字符串中。
  • 如果你想要做它在應用程序啓動,那麼您只需建立上下文的實例,然後訪問Database.Connection得到原始的SqlConnection和使用ADO.NET直接插入數據。
相關問題