Обработка XML-файла с помощью LINQ для добавления записей в таблицу в базе данных SQL Server через контекст данных. Поскольку мы добавляем записи, нам нужно назначить родителей в различных других таблицах. Большую часть времени мы можем найти существующего родителя и использовать его, но иногда нам нужно будет создать нового родителя.
Думал, что мы могли бы сделать это так:
Dim defaultPub As publication
defaultPub = New publication With {.name = e..Value}
Dim pub = _Data.publications.Where(Function(s) s.name = e..Value).DefaultIfEmpty(defaultPub).SingleOrDefault
.publication = pub
Итак, мы пытаемся найти публикацию, которая соответствует e..Value из нашего XML, но если мы не можем найти такую, тогда мы используем 'defaultPub'. Если оно существует, мы не хотим добавлять его снова. Так что, возможно, этот подход в любом случае ошибочен, даже если он работал ...
В любом случае, это в настоящее время не работает, мы получаем эту ошибку:
Неподдерживаемая перегрузка, используемая для оператора запроса «DefaultIfEmpty».
Перегрузка требует публикации и получает ее (я проверил TypeNames в quickwatch), не знаю, что здесь происходит.
Что мы действительно ищем, так это что-то вроде find_or_create из activerecord для Ruby, из которого, похоже, скопирована LINQ.
Заранее спасибо,
Дэйв.