bltoolkit与存储过程执行的关联



我有两个实体:

[TableName("is_userrole")]

public class UserRole
  {
      [MapField("id"), PrimaryKey, Identity,
      public Guid id;
      [NotNull]
      public string Name;       
  }    
[TableName("is_users")]
  public class User
  {
      [MapField("id"), PrimaryKey, Identity,
NonUpdatable]
      public Guid Id;
      [NotNull]
      public string Name;
      [NotNull]
      public string Login;
      [NotNull]
      public string Password;
      public Guid UserRole_Id;    
      [Association(ThisKey = "UserRole_Id", OtherKey = "Id",
CanBeNull = false)]
      public UserRole UserRole;
  }    

以及sql server上的存储过程,该存储过程从查询中获取数据

[从is_users u中选择u.,r.u.userrole_id=r.id]上的内部联接is_userrole r

如果我使用类似的linq查询

var query=来自数据库中的u。使用者选择新{u.Id,u.登录,u.密码,u.用户角色Id,u.用户角色};

关联填充,但如果我执行过程,则只填充父对象(即用户)
在bltoolkit.net中如何与存储过程建立关联?或者只能手动实现?

谢谢。

好的,所以我没有任何经验,但我很快查看了单元测试,看起来MapResultSet可以帮助你

单元测试位于->UnitTests\CS\MMapping\ResultSetTest.CS

AssosiationAttribute仅用于Linq表达式。

需要注意的是:BLT不执行"隐藏"操作,例如,如果您将linq代码更改为:db.User.ToList(),您将看到UserProperty未被填充。在您的示例中,填充之所以完成,是因为您在select子句中说过要这样做,而Association仅用于在SQL中构建正确的"INNER JOIN"。

相关内容

  • 没有找到相关文章

最新更新