У меня есть таблица Пользователи с внешним ключом к другому столу Отдел. Объект пользователя имеет POCO для отдела. Я могу выбрать пользователя с отделом-росо заселяется со следующим Simple.Data по-идентификатор запроса:Предопределяющие соединения в Simple.Data
db.Users.With(db.Users.Departments.As("Department")).FindByUserID(userId);
Теперь я не только пользователи нагрузки по идентификатору, но и по имени, которое приводит в следующем запросе:
db.Users.With(db.Users.Departments.As("Department")).FindByUserName(userName);
Чтобы сделать это DRY я думал, что я мог бы реорганизовать объединение в переменную и использовать его:
var userJoinedWithDepartment = db.Users.With(db.Users.Departments.As("Department"));
userJoinedWithDepartment.FindByUserID(userId);
Однако это вызывает проблемы. В какой-то другой момент я получаю сообщение об ошибке с уже открытой транзакцией, которая заставляет меня думать, что, определяя эту переменную, которая уже выполняет что-то в фоновом режиме. Я не вижу, как выполняется оператор SQL.
Есть ли способ обойти это и повторно использовать определения для объединений?