【问题标题】:Predefining joins in Simple.Data在 Simple.Data 中预定义连接
【发布时间】:2013-11-14 19:32:06
【问题描述】:

我有一个表 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);

为了让它 DRY,我想我可以将连接重构为一个变量并重用它:

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

但是这会带来麻烦。在其他一些时候,我得到一个关于已经打开的事务的错误,这让我相信通过定义已经在后台执行某些东西的变量。我看不到正在执行的 SQL 语句。

有没有办法解决这个问题并重用连接的定义?

【问题讨论】:

    标签: join simple.data


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-25
      • 2010-09-12
      相关资源
      最近更新 更多