Чтобы добавить некоторые детали - если вам нужно явно отметить область, в которой действует команда (чтобы получить точно такое же поведение, как в вашем примере C #, где cmd
id избавляется до вызова Commit
), вы можете написать:
use dbTrans = con.BeginTransaction()
( use cmd = con.CreateCommand()
cmd.BlahBlahBlah() )
dbTrans.Commit()
Область видимости - это только часть выражения, где символ определяется, поэтому вы можете сделать его явным, используя скобки.
using
- это просто функция F #, которую можно использовать до добавления специального синтаксиса с использованием use
. Просто к вашему сведению, синтаксис выглядит так:
using (con.BeginTransaction()) (fun dbTrans ->
using (con.CreateCommand()) (fun cmd ->
cmd.BlahBlahBlah() )
dbTrans.Commit() )
Написание кода с использованием use
определенно является лучшей идеей (но вы можете определить свои функции, например using
, для инкапсуляции более интересного поведения - например, транзакции).