1

在果园 1.6 中,我想获取 Orchard_Users_UserPartRecord 表中的所有记录

我可以通过说得到一个用户:

var user = _membershipService.GetUser(username);

或者

 IUser userInfo = _authenticationService.GetAuthenticatedUser();

是否没有某种查询或服务允许我获取所有用户?...我确定有,但我看不到它,所以我尝试添加我自己的...

在membershipService.cs iv中的Orchard.Users模块中添加:

public IEnumerable<IUser> GetAllUsers()
    {
        return _orchardServices.ContentManager.Query<UserPart, UserPartRecord>().List();
    }

IUserService iv 中的 tehn 添加了:

IEnumerable<IUser> AllUsers();

并在 userService iv 中添加:

 public IEnumerable<IUser> AllUsers()
    {
        IEnumerable<IUser> users = _membershipService.//but it doesnt allow me to select GetAllUsers, but it does allow me to seleect
            //getUser, iv used the same code only changed the query why isnt it showing?
        if (users == null)
            return null;

        return users;
    }

然后我需要让所有用户可以说:

IEnumerable<IUser> allUsers = _userService.AllUsers();

我认为有一项服务已经这样做了,我只是没有看到。有任何想法吗?

4

1 回答 1

1

GetAllUsers()在 上不可用_membershipService,因为_membershipService它属于接口类型IMembershipService,而不属于MembershipService您添加GetAllUsers()方法的类。要使其可用,还要GetAllUsers()IMembershipService接口添加方法声明。

至于是否已经存在用于执行此操作的服务,似乎并非如此。您可以看到 Orchard 本身使用与上述相同的技术来获取用户列表,例如在模块AdminController附带的中Orchard.Users

var users = Services.ContentManager
    .Query<UserPart, UserPartRecord>();
于 2014-01-03T03:14:00.587 回答