簡體   English   中英

SqlBulkCopy 是否支持 MsSql 2017 中的 Graphtables?

[英]Does SqlBulkCopy support Graphtables in MsSql 2017?

我正在嘗試添加到 Microsoft SQL Server 2017的新圖形數據庫支持我想使用 SqlBulkCopy 將幾千個節點插入到節點表中。 但是我總是錯誤: Column '$node_id_DB218B0EAE294E37804103CF4E82BCD2' does not allow DBNull.Value.

我的桌子是這樣創建的

CREATE TABLE [Product] (
[id] bigint,
[name] nvarchar(max),
[partsNum] bigint,
[price] float) AS NODE;

CREATE TABLE [DependsOn] (
[weight] float,
[id] bigint) AS EDGE;`

我准備了一個包含所有屬性的數據表,並像這樣調用 SqlBulkCopy:

using (var bulkCopy = new SqlBulkCopy(Connection, SqlBulkCopyOptions.TableLock | SqlBulkCopyOptions.FireTriggers, null)
{
    DestinationTableName = "Product"
})
{
    bulkCopy.WriteToServer(_dataTable);
}

現在我想知道我是否做錯了什么,或者這是否還不受支持。

SqlBulkCopyDataTable沒有特殊處理; 它將按順序位置映射要從源復制到目標的列,就像它為采用其他源的其他重載所做的那樣。 因此,按名稱設置身份映射不是可選的:

foreach (DataColumn c in dataTable.Columns) {
    sqlBulkCopy.ColumnMappings.Add(c.ColumnName, c.ColumnName);
}

對於圖形和節點表,問題比平常更明顯,因為支持結構的內部列(您通常不會明確使用)出現在列列表的開頭,因此幾乎可以保證失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM