我们可以在iC_ProductImageAssociation表中添加一个名为'ProductFeatureApplicabilityId'的列
本专栏将参考iC_ProductFeatureApplicability。因此,当产品假设将具有Color'RED'RED'的ABC插入iC_ProductFeatureApplicability时,我们可以将此ProductFeatureApplicabilityId存储在iC_ProductImageAssociation表中。
所以现在Image可以应用于产品或ProductFeature或两者。此外,我计划生产另一种ProductFeature数据模型。
其中,而不是将各列作为特征存储(如目前在iC_ProductFeature表中,我们将颜色,大小,品牌等存储为单独的列),我们可以创建产品功能(iC_ProductFeatureMasters)的主表,将所有这些列存储为行,在运行时管理器可以定义更多功能
所以iC_ProductFeatureMasters会将数据存储为
ProductFeatureMasterId FeatureName
1 Color
2 Size
3 Brand
4 Dimensions
和iC_ProductFeature表将存储ProductFeatureMasterId及其值。
所以现在iC_ProductFeature将如下所示
ProductFeatureId ProductFeatureMasterId Description UOM ID
1 1 RED
2 4 10 1
答案 0 :(得分:0)
以下是我的代码中的示例:
var table = new DataTable();
var sqlCopy = new SqlBulkCopy(dataBaseConnection, SqlBulkCopyOptions.Default, sqlTransaction) { DestinationTableName = destinationTableName};
sqlCopy.WriteToServer(table);
您可以通过以下链接找到更多信息:
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx
http://www.sqlteam.com/article/use-sqlbulkcopy-to-quickly-load-data-from-your-client-to-sql-server
您无法为多个表执行BulkCopy,因此您需要为每个表执行BulkCopy。 对于事务行为,您应该创建Transaction对象并传入BulkCopy对象的构造函数。
答案 1 :(得分:0)
有可能,每个行插入需要执行的触发器和其他逻辑是保持缓慢的事情,而不是插入方法。如果需要执行触发器,即使批量复制也不会很快。
我建议重构逻辑,使其在插入后的所有行上运行,而不是一次一行。通常,您将为新数据创建临时表,在处理时以及在与常规数据表合并之前存储它们。