Следующий код работает, но он сохраняет только последнюю запись в цикле, и я не могу понять, почему. Я думаю, что Submitchanges()
находится в нужном месте, в конце цикла. Может кто-нибудь, пожалуйста, покажите мне, что случилось? Благодарю.Подчинки после цикла - сохранена только последняя запись
Sub POPULATE_CHAIN()
Dim newChain As New CHAIN
Dim dpSTRIKE As Integer
'get list of Options Contracts
Dim lstOPT = From Z In DATA.OPTIONs, X In DATA.UDLies
Where X.UDLY_SYM = Z.UDLY_SYM
Select Z.CONTRACT, Z.STRIKE_GAP, X.UDLY_LAST
Dim dctOPT = lstOPT.ToDictionary(Function(Z) Z.CONTRACT)
For Each key In dctOPT.Keys
For COUNT = 1 To 5
dpSTRIKE = 1850 + 5 * COUNT
Dim lkup = From Z In DATA.CHAINs
Select Z
Dim RCD_EXISTS As Boolean = lkup.Any(Function(Z) Z.CONTRACT = dctOPT(key).CONTRACT And Z.P_C = "C" And Z.STRIKE = dpSTRIKE)
If RCD_EXISTS = False Then
newChain.CONTRACT = dctOPT(key).CONTRACT
newChain.P_C = "C"
newChain.STRIKE = dpSTRIKE
DATA.CHAINs.InsertOnSubmit(newChain)
Else
newChain.CONTRACT = dctOPT(key).CONTRACT
newChain.P_C = "C"
newChain.STRIKE = dpSTRIKE
End If
Next
Next
DATA.SubmitChanges()
End Sub
Если вы не указываете newChain на существующую запись, если есть совпадение. На данный момент ваш код использует Any, чтобы определить, есть ли совпадение, но ничего не делает с соответствующей записью. – sgmoore
Tks, но я подумал, что '' else '' часть '' if..else..end if'' обрабатывается соответствующими записями. Не понял ли я метод обновления linq? Я знаю, что db пуст, поэтому проблема заключается в добавлении 5 новых записей, а не в обновление существующего. – Zeus