в коде структуры сущности сначала, почему ключ не уникален - PullRequest
3 голосов
/ 14 февраля 2011

Я использовал методы, указанные здесь для создания составных ключей.SQL Server называет его PrimaryKey, но он не уникален (!).Есть ли способ указать уникальность в атрибутах или свободно API?Я нашел несколько хаков здесь , но это должно быть возможно сделать заранее ...

Неуникальные комбинации значений являются результатом операции SQLBulkCopy.Возможно ли, что это причина?

[править] мои предположения были неверны - читайте мой ответ.

Ответы [ 2 ]

2 голосов
/ 14 февраля 2011

Моя ошибка! Ключи уникальны, в том числе составные ключи. Моя проблема была в отображении столбцов класса SqlBulCopy. Я делал

Public Sub DoBulKCopy(dt As DataTable, cns As String)
    Dim cn As New SqlConnection(cns)
    cn.Open()
    Dim copy As New SqlBulkCopy(cn)
    For i As Integer = 0 To dt.Columns.Count - 1
        copy.ColumnMappings.Add(i,i)
    Next

Пока я должен был делать

Public Sub DoBulKCopy(dt As DataTable, cns As String)
    Dim cn As New SqlConnection(cns)
    cn.Open()
    Dim copy As New SqlBulkCopy(cn)
    For i As Integer = 0 To dt.Columns.Count - 1
        copy.ColumnMappings.Add(dt.Columns(i).ColumnName, dt.Columns(i).ColumnName)
    Next

И не предполагать, что порядок столбцов одинаков.

НТН

1 голос
/ 14 февраля 2011

Уникальность составного ключа - это объединенные значения всех ключей.Вы можете иметь повторяющиеся значения в любом отдельном столбце, но все ключевые столбцы в целом нельзя повторить как последовательность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...