0

私は、データ アクセスに LinqToSql を使用して製品を作成しています。私たちは急速に開発を進めていますが、モデルは頻繁に変更されます。これは、開発中にデータベースのロットをダンプして再ロードすることを意味します。したがって、ベースライン データを毎回再作成するためのオーバーヘッドが発生します。

モデル DB を同じ頻度で更新する必要があるため、DB バックアップを復元するプロセスは役に立ちません。同じオーバーヘッド(とにかくだと思います)。

したがって、DataContext.CreateDatabase を使用して、CSV ファイルからデータを取得します。罰金。しかし、私は関係をつなぎ合わせたいと思っています。つまり、理想的には、主キーが何であるかを事前に知っていることを意味します (そうしないと、一部の ID が GUID であるため、必要なリンクをつなぎ合わせるのが難しくなります)。

SET IDENTITY_INSERT IdentityTable ONLinq To SQLの(およびOFF)に相当するものは何ですか? ありますか?

4

1 に答える 1

2

主キーを事前に知っている必要はありません。関係を知っているだけで済みます。

顧客が多数の注文を持っている顧客と注文をロードしたいとします。

まず、顧客をファイルからメモリにロードし、CustomerIdのファイルから偽の主キー値を使用します(この値は、後でデータベースによって自動生成された値に置き換えられます)。

Dictionary<int, Customer> customers = LoadCustomersFromFile();

次に、注文をファイルからメモリにロードします。OrderIdに偽の主キー値を使用します。それらの偽のCustomerIdを再利用して、関係を確立します。関連する顧客に注文を追加します。

Dictionary<int, Order> orders = LoadOrdersFromFile();
foreach(Order o in orders.Values)
{
  customers[o.CustomerId].Orders.Add(o);
}

オブジェクトグラフが作成されたら、すべてのオブジェクトをInsertOnSubmitします。

于 2009-01-09T16:26:37.180 に答える