LINQ to SQL - массовая вставка с использованием VB - PullRequest
0 голосов
/ 11 августа 2009

У кого-нибудь есть несколько хороших примеров (достойных новичков) того, как должна выглядеть массовая вставка, или отличный способ объяснить это, используя весь метод LINQ to SQL?

У меня есть БД с примерно 7 таблицами, с которыми я пытаюсь связать некоторые страницы .net, и, насколько я могу, большинство этих таблиц можно проконтролировать. Один сложный сценарий, который я нахожу, вращается вокруг использования GUID и того, как заставить этот конкретный GUID распространяться в другой таблице ...

У кого-нибудь есть идеи / примеры?

1 Ответ

1 голос
/ 14 августа 2009

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

Раньше я не особо связывался с LINQ, поэтому просто создал действительно простой проект. Я смог вставить GUID в две отдельные таблицы просто отлично.

    Dim db As New testDBDataContext

    ' Table1 ID (Primary Key)
    Dim gId As Guid = Guid.NewGuid()

    ' Table2 ID (Primary Key)
    Dim gId2 As Guid = Guid.NewGuid()

    ' Insert Record into Table 1
    Dim tb1Insert As New test_tb1 With {.Id = gId, .Name = "TestName"}
    db.test_tb1s.InsertOnSubmit(tb1Insert)

    ' Insert Record into Table 2, with testID referenced to Table1's Primary Key
    Dim tb2Insert As New test_tb2 With {.Id = gId2, .test1Id = gId, .OtherName = "OtherName"}
    db.test_tb2s.InsertOnSubmit(tb2Insert) '

    ' Commit Changes
    db.SubmitChanges()

Единственный способ получить сообщение об ошибке - установить связь между двумя таблицами в SQL Server. Затем, если я попытаюсь сначала вставить таблицу 2, произойдет ошибка, потому что я буду пытаться вставить GUID таблицы 2 «test1ID» без идентификатора GUID в таблицу 1.

Если вы получаете сообщение об ошибке «конфликтует с ограничением COLUMN FOREIGN KEY», это, вероятно, то, что происходит.

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