如何在EntityFramework中禁用DynamicProxies

时间:2018-06-29 11:29:35

标签: c# entity-framework

我正在开发现有项目,其中数据库访问的编码如下:

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无法访问。我该怎么办?

0 个答案:

没有答案