Немного сложно устранить эту проблему, не зная, каков результат внутреннего исключения, если таковой имеется. Это может быть просто проблемой, связанной с настройкой строки подключения или конфигурации поставщика.
В общем, вы должны быть осторожны с параллельным кодом и EF. Однако то, что вы делаете, должно работать. Один вопрос в моем уме; Выполняется ли какая-либо работа над другим экземпляром этого контекста перед параллелью? Согласно вашему сообщению, вы делаете отдельный контекст в каждом потоке. Это хорошо. Однако часть меня удивляется, если между несколькими контекстами происходит интересное соперничество конструктора. Если вы не используете этот контекст где-либо перед этим параллельным вызовом, я бы предложил попытаться запустить даже простой запрос против контекста, чтобы открыть его и убедиться, что все биты EF запущены перед запуском параллельного метода. Я признаю, что я не пробовал точно , что вы здесь делали, но я сделал близко, и это сработало.
Вы можете создать функцию-обертку для удаления списка и вызывать эту функцию вместо прямого вызова list.remove.
def list_remove(l, elem):
l.remove(elem)
return l
print (list_remove(l, elem))
Отказ от ответственности: Я действительно не рекомендую вам делать это. Но это всего лишь метод, который мне пришёл в голову.
blockquote>Я действительно не вижу проблемы в написании
list.remove()
и
Если вы действительно хотите одно утверждение без изменения рассматриваемого списка, вы можете попробовать my_list[:my_list.index(value)]+my_list[my_list.index(value)+1:]
. Это имеет недостатки
my_list.index(value)
дважды (не обязательно 3.8+, см. PEP572 ) my_list.remove(val)
И,
Отказ от ответственности : я действительно не рекомендую вам делать это. Но это всего лишь метод, который мне пришёл в голову.
Я действительно не вижу проблемы в написании list.remove () и печати в отдельных выражениях.
- Джей
blockquote>
Вы можете заключить его в одну строку, используя лямбду, если вы действительно хотите:
print( (lambda x,y:x if x.remove(y) is None else None) ([1, 2, 3], 2) )
Вам нужна копия Отказ от ответственности из двух других ответов ? Короче говоря, это не очень читаемый кусок кода.