0

我正在编写一个使用 LinqToSql 进行数据访问的产品。在我们快速发展的同时,模型经常发生变化。这意味着我们在开发时会大量转储和重新加载数据库。因此,每次都涉及重新创建基线数据的开销。

恢复数据库备份的过程没有用,因为我们需要经常更新模型数据库;相同的开销(我认为,无论如何)。

所以,我想使用 DataContext.CreateDatabase,然后从 CSV 文件中提取一些数据。美好的。但我也想缝合关系,这意味着,理想情况下,提前知道主键是什么(否则,鉴于某些身份是 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 回答