Associations bltoolkit与存储过程执行的关联
我有两个实体:Associations bltoolkit与存储过程执行的关联,associations,bltoolkit,proc,Associations,Bltoolkit,Proc,我有两个实体: [TableName("is_userrole")] public class UserRole { [MapField("id"), PrimaryKey, Identity, public Guid id; [NotNull] public string Name; } [TableName("is_users")] public class User { [MapFiel
[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_用户u中选择u.,r.]
内部联接是\u userrole r on u.userrole\u id=r.id]
如果我像这样使用linq查询
var query=来自数据库中的u.User
选择新的
{
u、 身份证,
u、 登录,
u、 密码,
u、 UserRole\u Id,
u、 用户角色
};
关联填充,但如果执行过程,则仅填充父对象(即用户)。如何在bltoolkit.net中与存储过程建立关联? 或者只能手动实现
谢谢。好的,所以我没有这方面的经验,但我很快查看了单元测试,它似乎可以帮助您
单元测试在这里->单元测试\CS\Mapping\resultsetset.CS
associationAttribute
仅用于Linq表达式
请注意:BLT不执行任何“隐藏”操作,例如。如果您将linq代码更改为:
db.User.ToList()
,您将看到UserProperty未填充。在您的示例中,填充完成是因为您在select子句中说过要这样做,关联
仅用于在SQL中构建适当的“内部联接”。我有SP-SelectByLogin(string)和公共抽象类UserAccessor:gosDBAccessor{public abstract User SelectByLogin(string@login)}此SP具有复杂的查询,其中包含内部联接。Execution-UserAccessor ua=DataAccessor.CreateInstance();用户=ua。选择ByLogin(登录);此用户未填充UserRole属性。地图集包含在代码中的位置在哪里?我真的不明白你的问题,你看过单元测试了吗?