我有一个表Users与另一个表Department的外键。User 对象有一个部门的 POCO。我可以选择一个用户,其部门-poco 填充了以下 Simple.Data by-id 查询:
db.Users.With(db.Users.Departments.As("Department")).FindByUserID(userId);
现在,我不仅按 id 加载用户,还按名称加载用户,这会导致以下查询:
db.Users.With(db.Users.Departments.As("Department")).FindByUserName(userName);
为了使它干燥,我想我可以将连接重构为一个变量并重用它:
var userJoinedWithDepartment = db.Users.With(db.Users.Departments.As("Department"));
userJoinedWithDepartment.FindByUserID(userId);
然而,这会带来麻烦。在其他时候,我收到一个关于已经打开的事务的错误,这让我相信通过定义已经在后台执行某些东西的变量。我看不到正在执行的 SQL 语句。
有没有办法解决这个问题并重用连接的定义?