我正在开发现有项目,其中数据库访问的编码如下:
public UserDTO Login(string login, string password)
{
return OnConnect<UserDTO>(db =>
{
var user = db.Users
.Where(x => x.Name.Trim().ToLower() == login.ToLower().Trim())
.FirstOrDefault();
// validation..
return user.ToUserDTO();
});
}
问题是退出此方法后,我的user
属性(如:user.PermissionGroup
无法访问,因为它位于DynamicProxies
中,但是上下文已关闭。
阅读了一些stack'o帖子之后,我设法保留了在离开Login
方法之后要使用的属性:
public UserDTO Login(string login, string password)
{
return OnConnect<UserDTO>(db =>
{
var user = db.Users
.Where(x => x.Name.Trim().ToLower() == login.ToLower().Trim())
.Include("PermissionGroup")
.Include("PermissionGroup.GroupActionPermissions")
.Include("PermissionGroup.GroupActionPermissions.PermissionAction")
.Include("PermissionGroup.GroupActionPermissions.PermissionAction.PermissionController")
.Include("UserActionPermissions")
.Include("UserActionPermissions.PermissionAction")
.Include("UserActionPermissions.PermissionAction.PermissionController")
.FirstOrDefault();
// validation..
return user.ToUserDTO();
});
}
不幸的是,这没有改变任何东西。 user.PermissionGroup
无法访问。我该怎么办?