У меня есть две таблицы данных A и B. A является родительской таблицей.Строки в B содержат поле ParentId, которое ссылается на A.
Я хочу выполнить массовую вставку A и B отдельно.После вставки A как установить ParentId в соответствующих дочерних строках в B?
Обновление:
У меня есть следующий код для создания таблиц данных:
var a= new DataTable("A");
DataColumn id= new DataColumn("Id", typeof(int));
billablePriceMapId.AutoIncrement = true;
billable.Columns.Add(id);
DataColumn fee = new DataColumn("Fee", typeof(decimal));
billable.Columns.Add(fee);
DataColumn[] keys = new DataColumn[1];
keys[0] = id;
billable.PrimaryKey = keys;
Для дочерней таблицы:
var b= new DataTable("B");
DataColumn id= new DataColumn("Id", typeof(int));
billablePriceMapId.AutoIncrement = true;
billable.Columns.Add(id);
DataColumn parentId= new DataColumn("ParentId", typeof(int));
billable.Columns.Add(parentId);
DataColumn[] keys = new DataColumn[1];
keys[0] = id;
billable.PrimaryKey = keys;
Я не установил никаких отношений между двумя таблицами.Я хотел бы знать, как я могу сделать это правильно.
Ниже приведен код, который я использую для массовой вставки:
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection, SqlBulkCopyOptions.Default, transaction))
{
try
{
bulkCopy.DestinationTableName = "dbo.A";
bulkCopy.WriteToServer(a);
bulkCopy.DestinationTableName = "dbo.B";
bulkCopy.WriteToServer(b);
}
catch (Exception ex)
{
Logger.Error(ex, "Bulk copy operation failed.");
}
}