0

我们可以在 iC_ProductImageAssociation 表中再添加一列,名为“ProductFeatureApplicabilityId”

此列将引用 iC_ProductFeatureApplicability。因此,当产品假设具有颜色“RED”的 ProductFeature 的 ABC 插入到 iC_ProductFeatureApplicability 中时,我们可以获取此 ProductFeatureApplicabilityId 并存储在 iC_ProductImageAssociation 表中。

所以现在 Image 可以应用于产品或 ProductFeature 或两者。我还计划制作一个替代的 ProductFeature 数据模型。

与其将单个列存储为特征(如当前在 iC_ProductFeature 表中,我们将 Color、Size、Brand 等存储为单独的列),我们可以创建一个产品特征的主表(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    
4

2 回答 2

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 对象的构造函数。

于 2011-02-01T15:19:01.990 回答
0

很有可能,每行插入需要执行的触发器和其他逻辑是使事情变慢的原因,而不是插入方法。如果需要执行触发器,即使批量复制也不会很快。

我建议重构逻辑以在插入后在所有行上运行,而不是一次一个。通常,您会为新数据创建临时表,在处理时以及与常规数据表合并之前将其存储在其中。

于 2011-02-01T15:34:00.507 回答