ASP.NET MVC:模型和MembershipUsers之间的关系

时间:2009-08-05 08:34:15

标签: asp.net-mvc asp.net-membership

我有一个带有guid列的文档Docs,author_id,它应该引用MembershipUser。

我正在使用标准的MembershipProvider(我只更改了数据库名称),当然我没有MembershipUsers的模型。

我可以轻松地在类Docs中定义一些方法,以获取Doc的MembershipUser和MembershipUser的所有文档,但有些事情很棘手(列出用户,显示每个用户有多少文档);此外,我觉得我以一种奇怪的方式使用MVC:在我看来,如果我有一个MembershipUsers模型会更容易......

我该如何实现这种关系?我应该为MembershipUsers实现模型吗?

感谢

更新:我意识到我一点也不清楚。

说我想列出我的所有用户及其文档。 一种方法是:

ViewModel model = new ViewModel()
{
    Users = from MembershipUser user in Membership.GetAllUsers(page, pagesize, out totalusers)
            select new UserWithDocs
            {
                User = user,
                Docs = context.Docs.Where(c => c.author_id == (Guid) user.ProviderUserKey)
            },
    UsersCount = totalusers
};

这样可行,但会为每个用户生成一个单独的查询。

我可以获取一系列用户的guid然后查询文档where author_id IN list_of_guids,但之后我应该手动将每个文档与其作者关联。

什么是更好的解决方案?

1 个答案:

答案 0 :(得分:0)

不确定我是否理解正确,但您可以使用MembershipUser类作为用户的模型。如果你想引用用户到你的“doc”模型,你可以简单地向你的模型类添加一个属性“Author”,当你从DB中获取模型时,你也可以得到用户。

Membership类包含一些静态方法,用于列出所有用户,添加/删除用户等。