Как отключить DynamicProxies в EntityFramework - PullRequest
0 голосов
/ 29 июня 2018

Я занимаюсь разработкой существующего проекта, в котором доступ к базе данных кодируется как:

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 недоступен. Что мне делать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...