在Simple.Data中预定义连接

时间:2013-11-14 19:32:07

标签: join simple.data

我有一个表 Users ,其外键是另一个表 Department 。 User对象具有部门的POCO。我可以选择使用以下Simple.Data by-id查询填充department-poco的用户:

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语句。

有没有办法绕过它并重用连接的定义?

1 个答案:

答案 0 :(得分:0)

解决方案不是将其设为var而是dynamic

dynamic userJoinedWithDepartment = db.Users.With(db.Users.Departments.As("Department"));
userJoinedWithDepartment.FindByUserID(userId);