我們的應用存在巨大的性能問題,我們從不同的系統收集數據並將其保存在我們的數據庫中,以便稍後生成一些報告。使用EF4.2批量插入
我們使用實體框架4.2和DbSets,有沒有這樣做批量插入,然後Add方法有關DbSet每個實體的更好的辦法?因爲有與添加邏輯
oneThousandCustomers.Foreach(c => context.Customers.Add(c)); //This will take a minute
context.SaveChanges(); //This takes under a second
巨大的性能問題,我想add方法是引擎蓋下做大量的查找等之類的東西,但我只是想批量插入這些數據。可能嗎?
我們使用CQRS框架,並且每個請求注入上下文,更改上下文的行爲有點危險,因爲不能保證命令邏輯的其他部分在更改上下文行爲後不會使用上下文。 – Anders 2012-03-08 10:00:03
如果您想要EF的好處,性能是危險的並且涉及妥協,那麼您需要處理性能問題或手動管理環境以優化性能。如果你不想這樣做,你也想要性能,那麼不要使用EF。但是,我對CQRS,消息傳遞和批量導入以及EF(對於查詢和寫入)都做了完全相同的事情,並且它工作正常。 – 2012-03-08 11:16:31
我們選擇這一個,因爲它很容易改變我們現有的代碼。所有的單元測試和場景測試都是綠色的,所以它看起來像在工作!謝謝! – Anders 2012-03-09 08:40:21