当社のヘルスケアアプリケーションは(AngularjS + MVC + WebAPI)3tierアーキテクチャです。インポート画面で列のマッピングを行うExcelシートをアップロードする。その後、Excelシートの各レコードごとにすべての検証を行います。その後、これらすべての50K行がWeb-APIレイヤーのエンティティとして使用されます。ここでは、1つのレコードを親テーブルに挿入して、主キーを取得します。 50kのエンティティをループしてコレクション内で更新します。次に、addRangeを使用してこれらの値をすべてデータベースに更新します。ここでは、アプリケーションで使用したコードを示します。Entity Framework v6.1での一括挿入
db.tableA.Add(Entity1);
db.SaveChanges();
(Primary Key) fileId = int.Parse(Entity1.Id.ToString());
//DataList having 50K Entities
foreach (tableB coll in DataList)
{
coll.fileID = fileId;
}
db.tableB.AddRange(DataList);
db.SaveChanges();
以下のリンクを参照してください。 Bulk insert in entity framework
Bulk insert in entity framework
How to use Bulk Insert in Entity Framework using Object Context?
しかし、私は最新のEFのバージョン(6.1)との互換性がありませんので、EntityFramework.BulkInsertを使用couldntの。 EFを使用して一括挿入を使用する他の実行可能なアプローチはありますか?また、我々は、Entity FrameworkでSqlBulkCopyを使用することができます `
はい、EFを使用しているプロジェクトでSqlBulkCopyを使用できます。 –
@ Lukasはい。EFバージョン6.1で一括挿入を使用する可能性はありますか? – SivaRajini
@SivaRajiniなぜですか?一括挿入は*オブジェクト*とは何の関係もありません。一括挿入とは、レコードのストリームをできるだけ早くデータベースに送信することです。 ORMはレコードではなく、マッピングやクラスを扱います。仕事のために間違ったツールです。 –